신경망이 " 범용 함수 근 사기"라고 들었을 수도 있습니다 . 본질적으로 Cybenko 정리는 함수를 실수에 실수로 매핑하는 경우 시그 모이 드 활성화 함수가있는 신경망으로 근사 할 수 있다고 말합니다. 실제로 신경망을 사용하면 튜링 머신 에서 계산할 수있는 기능 (예 : 계산 알고리즘을 작성할 수있는 기능)을 계산할 수 있습니다. 불행히도, 이러한 증명은 뉴런과 가중치의 일부 유한 구성에 대해 모든 기능을 근사 할 수 있다고 말합니다.
이론은 모두 멋지고 멋지지만 귀하의 질문은 일부 함수의 계산을 실제로 일련의 뉴런과 가중치로 인코딩하는 방법에 더 많은 것 같습니다. 설명하기 위해 배타적 또는 간단한 예를 고려하십시오. XOR은 두 개의 입력을 받아 해당 입력을 전달합니다. 입력 중 하나만 활성화되면 출력 노드가 활성화됩니다. 입력이 모두 활성화되거나 활성화되지 않으면 출력 노드가 활성화되지 않습니다.
세 개의 숨겨진 노드는 다른 작업을 수행합니다. 가장 왼쪽과 오른쪽 노드는 단순히 입력 노드 활성화를 통과합니다. 중간 뉴런은 두 개의 입력을 취하고 둘 다 켜져 있으면 어떻게 든 무시합니다. 이 영리한 입력 조합 및 재조합은 본질적으로 신경망에서 작동하는 방식입니다.
보다 복잡한 기능의 경우 결합과 재결합은보다 영리하고 복잡한 방식으로 수행되어야하지만 이는 본질적으로 낮은 수준에서 일어나는 일입니다. 미친 것은 이것이 실제로 계산 가능한 함수를 계산하는 데 필요한 전부라는 것입니다! 다시 말하지만, 튜링 머신은 믿을 수 없을만큼 간단합니다.
문제는 실제로 임의의 기능을 계산하는 신경망을 마술처럼 생성 할 수있는 방법이 없다는 것입니다. 증거는 단지 그것을 할 수있는 네트워크가 있다는 것을 말해줍니다. 신경망을 훈련시킬 때, 우리는 아주 가까운 네트워크를 찾기 위해 노력하고 있습니다.
이미지 인식의 맥락에서 네트워크에 인코딩 패턴을 상상할 수 있습니다. 예를 들어, 숫자 '1'을 인식하기 위해 인접 픽셀이 꺼진 상태에서 픽셀 열이 대부분 또는 모두 활성화 될 것으로 예상되는 숨겨진 노드를 상상할 수 있습니다. 이 숨겨진 노드는 해당 특정 열에서 직선을 인식하는 데 상당히 효과적 일 수 있습니다. 이것들을 충분히 합치면 곧 이미지의 충분한 장소에서 그것을 할 수있는 많은 노드가 생길 것입니다. 네트워크를 보여 주면 충분한 직선 숨겨진 노드가 활성화되어 '1'을 나타냅니다. 물론 문제는 네트워크를 일반화하여 다양한 입력 세트를 인식 할 수 있습니다.
희망적으로 이것은 신경망이 계산을 수행하는 방법의 개념을 다소 이해하는 데 도움이되기를 바랍니다. 그러나 신경망에 대해서는 다소 중요한 점에 부딪 쳤습니다. 일반적으로 네트워크가 특정 출력을 내뿜는 이유를 이해하는 것이 가장 어렵습니다. 특히 이미지 인식과 같은 경우 네트워크가 일반적으로 인간이 기계의 각 움직이는 부분을 이해하는 데 어려움을 겪을만큼 충분히 큽니다. 더 복잡한 문제는 일반적으로 대부분의 신경망에는 실제로 네트워크가 데이터에 대해 배울 수있는 작은 기능마다 하나의 숨겨진 노드가 없다는 것입니다. 대신, 숫자 '1'을 분류하기 위해 직선과 같은 것을 감지하면 많은 숨겨진 노드에 대해 중앙 집중식으로 수행되지 않습니다. 다른 알고리즘
더 많은 책을 찾고 있다면 ai junkie 에서이 튜토리얼 을 읽는 것이 좋습니다 . 신경망이 작동하는 기본 원리를 안내하고 신경망이 목표를 향해 탱크를 운전하도록하는 간단한 코드 예제도 제공합니다. 그러나이 튜토리얼에서는 신경망을 훈련시키는 가장 일반적인 방법 인 역 전파를 다루지 않고 간단한 유전자 알고리즘을 사용합니다. 그가 유전학 이야기를 시작하면 독서를 그만 둘 수있을 것 같아요 ...