PART 1 · TRACK 5 · LESSON 2
신경망은 어떻게 만들어지는가
앞서 말했듯이 뉴런은 매우 간단한 처리 단위입니다. 4장에서 선형 및 로지스틱 회귀를 논의한 후 신경망의 필수적인 기술적 세부 사항은 동일한 아이디어의 약간의 변형으로 볼 수 있습니다.
LESSON FOCUS
이 소단원의 핵심 내용
앞서 말했듯이 뉴런은 매우 간단한 처리 단위입니다. 4장에서 선형 및 로지스틱 회귀를 논의한 후 신경망의 필수적인 기술적 세부 사항은 동일한 아이디어의 약간의 변형으로 볼 수 있습니다.
- 가중치와 입력
- 활성화 및 출력
- 뉴런이 활성화되는 방식
앞서 말했듯이 뉴런은 매우 간단한 처리 단위입니다. 4장에서 선형 및 로지스틱 회귀를 논의한 후 신경망의 필수적인 기술적 세부 사항은 동일한 아이디어의 약간의 변형으로 볼 수 있습니다.
6개의 입력(감자, 당근 등 6개의 쇼핑 품목의 양과 유사), input1, input2, input3, input4, input5 및 input6이 있는 뉴런이 있는 경우 6개의 가중치도 필요합니다. 무게는 품목의 가격과 유사합니다. 우리는 그것들을 무게1, 무게2, 무게3, 무게4, 무게5, 무게6이라고 부르겠습니다. 또한 일반적으로 선형 회귀에서 했던 것처럼 절편 항을 포함하려고 합니다. 예를 들어 이는 신용 카드 결제 처리로 인한 고정된 추가 요금으로 간주할 수 있습니다.
그러면 다음과 같이 선형 조합을 계산할 수 있습니다. 선형 조합 = 절편 + 가중치1 × 입력1 + ... + 가중치6 × 입력6
(여기서 ... 는 합계에 1부터 6까지의 모든 용어가 포함된다는 의미의 약칭 표기법입니다.)
몇 가지 예시 숫자를 사용하면 다음을 얻을 수 있습니다.
10.0 + 5.4 × 8 + (-10.2) × 5 + (-0.1) × 22 + 101.4 × (-5) + 0.0 × 2 + 12.0 × (-3) = -543.0가중치는 이전에 설명한 대로 선형 또는 로지스틱 회귀와 동일한 아이디어를 사용하여 거의 항상 데이터에서 학습됩니다. 하지만 이에 대해 더 자세히 논의하기 전에 뉴런이 출력 신호를 보내기 전에 완료하는 또 다른 중요한 단계를 소개하겠습니다.
활성화 및 출력
선형 조합이 계산되면 뉴런은 한 가지 작업을 더 수행합니다. 선형 결합을 취하여 소위 활성화 함수를 통해 적용합니다. 활성화 함수의 일반적인 예는 다음과 같습니다.
- 항등 함수: 아무것도 하지 않고 선형 조합만 출력합니다.
- 단계 기능: 선형 조합의 값이 0보다 크면 펄스를 보내고(ON), 그렇지 않으면 아무것도 하지 않습니다(OFF).
- 시그모이드 함수: 계단 함수의 "소프트" 버전
첫 번째 활성화 함수인 항등 함수의 경우 뉴런은 선형 회귀와 정확히 동일합니다. 이것이 바로 신원 함수가 신경망에서 거의 사용되지 않는 이유입니다. 이는 새롭고 흥미로운 결과를 가져오지 않습니다.
선형 결합과 활성화 함수에 의해 결정된 뉴런의 출력은 예측 또는 결정을 추출하는 데 사용될 수 있습니다. 예를 들어, 네트워크가 자율 주행 자동차 앞의 정지 신호를 식별하도록 설계된 경우 입력은 자동차 앞에 부착된 카메라가 캡처한 이미지의 픽셀이 될 수 있으며 출력은 표지판 전에 자동차를 정지시키는 정지 절차를 활성화하는 데 사용될 수 있습니다.
네트워크의 학습 또는 적응은 선형 또는 로지스틱 회귀와 마찬가지로 네트워크가 올바른 출력을 생성하도록 가중치가 조정될 때 발생합니다. 많은 신경망은 매우 크고 가장 큰 신경망에는 수천억 개의 가중치가 포함되어 있습니다. 이들 모두를 최적화하는 것은 엄청난 양의 컴퓨팅 성능이 필요한 어려운 작업이 될 수 있습니다.
퍼셉트론: 모든 ANN의 어머니
퍼셉트론은 위에서 논의한 단계 활성화 기능을 갖춘 단순한 뉴런 모델의 멋진 이름일 뿐입니다. 이는 신경 계산의 최초 공식 모델 중 하나였으며 신경망 역사에서 근본적인 역할을 했기 때문에 "모든 인공 신경망의 어머니"라고 불러도 무리가 없을 것입니다.
이진 분류 작업에서 간단한 분류자로 사용할 수 있습니다. 퍼셉트론 알고리즘이라 불리는 데이터로부터 퍼셉트론의 가중치를 학습하는 방법은 1957년 심리학자 프랭크 로젠블라트(Frank Rosenblatt)에 의해 소개되었습니다. 퍼셉트론 알고리즘에 대해서는 자세히 연구하지 않겠습니다. 이는 최근접 이웃 분류기만큼 간단하다고만 말하면 충분합니다. 기본 원칙은 한 번에 하나씩 네트워크 훈련 데이터를 제공하는 것입니다. 잘못 분류될 때마다 가중치가 업데이트됩니다.
결국 1960년대에 20년 넘게 신경망 접근 방식을 거의 완전히 포기하게 된 논쟁의 역사는 매우 흥미롭습니다. Mikel Olazaran이 쓴 퍼셉트론 논쟁의 공식 역사에 대한 사회학적 연구(1996년 과학 사회학 출판)에서는 과학 사회학 관점에서 사건을 검토합니다. 오늘 이 글을 읽으면 많은 생각이 들게 됩니다. 곧 인간 지능 수준에 도달하고 자의식을 갖게 될 신경망 알고리즘을 개발한 유명한 AI 영웅에 대한 이야기를 읽는 것은 현재 과대 광고 중에 나온 일부 진술과 비교할 수 있습니다. 위의 기사를 한 번 읽어보시면, 다 읽지 않더라도 오늘 뉴스에 대한 흥미로운 배경을 제공해 주실 것입니다. 예를 들어 2017년 9월에 발표된 MIT Technology Review의 기사를 생각해 보세요. 수백만 달러 규모의 Vector AI 연구소의 공동 설립자인 Jordan Jacobs는 1980년대 이후 신경망 알고리즘 개발에 기여한 Geoffrey Hinton(현재 딥 러닝 붐의 일인자)을 Einstein과 비교했습니다. 또한 이전 섹션에서 언급한 Human Brain 프로젝트를 떠올려 보세요.
Hinton에 따르면 "작동하지 않는다는 사실은 일시적인 짜증일 뿐이다"라고 합니다(기사에 따르면 Hinton은 위의 진술에 대해 웃고 있기 때문에 그가 그것에 대해 얼마나 진지한지 말하기는 어렵습니다). 휴먼 브레인(Human Brain) 프로젝트는 “의식에 대한 이해가 크게 도약했다”고 주장합니다. 익숙하지 않나요?
미래를 확실하게 아는 사람은 아무도 없지만, 임박한 혁신에 대한 이전 발표 실적을 아는 경우 몇 가지 비판적인 사고가 필요합니다. 마지막 장에서는 AI의 미래로 돌아가지만 지금은 인공 신경망이 어떻게 구축되는지 살펴보겠습니다.
뉴런을 하나로 묶기: 네트워크
단일 뉴런은 대부분의 실제 응용 분야에서 결정을 내리고 안정적으로 예측하기에는 너무 단순합니다. 신경망의 잠재력을 최대한 활용하기 위해 한 뉴런의 출력을 다른 뉴런의 입력으로 사용할 수 있으며, 그 출력은 다른 뉴런의 입력이 될 수 있습니다. 전체 네트워크의 출력은 출력 레이어라고 불리는 뉴런의 특정 하위 집합의 출력으로 얻어집니다. 신경망이 데이터에서 매개변수를 학습하여 다양한 행동을 생성하도록 적응하는 방식을 논의한 후 이에 대해 잠시 후에 다시 설명하겠습니다.
KEY TERMINOLOGY
레이어
네트워크 아키텍처는 레이어로 구성되는 경우가 많습니다. 입력 레이어는 데이터에서 직접 입력을 받는 뉴런으로 구성됩니다. 예를 들어 이미지 인식 작업에서 입력 레이어는 입력 이미지의 픽셀 값을 입력 레이어의 입력으로 사용합니다. 네트워크에는 일반적으로 다른 뉴런의 출력을 입력으로 사용하고 그 출력이 다른 뉴런 레이어의 입력으로 사용되는 숨겨진 레이어도 있습니다. 마지막으로 출력 계층은 전체 네트워크의 출력을 생성합니다. 특정 계층의 모든 뉴런은 이전 계층의 뉴런으로부터 입력을 받고 그 출력을 다음 계층에 공급합니다.
다층 네트워크의 전형적인 예는 소위 다층 퍼셉트론입니다. 위에서 논의한 것처럼 Rosenblatt의 퍼셉트론 알고리즘은 퍼셉트론의 가중치를 학습하는 데 사용될 수 있습니다. 다층 퍼셉트론의 경우 해당 학습 문제는 훨씬 더 어렵고 작동하는 솔루션을 발견하는 데 오랜 시간이 걸렸습니다. 그러나 결국 하나가 발명되었습니다. 역전파 알고리즘은 1980년대 후반에 신경망의 부활을 가져왔습니다. 이는 여전히 최첨단 딥러닝 솔루션의 핵심입니다.
간단한 신경망 분류기
신경망 분류기를 사용하는 비교적 간단한 예를 제공하기 위해 MNIST 숫자 인식 작업과 매우 유사한 작업, 즉 이미지를 두 클래스로 분류하는 작업을 고려해 보겠습니다. 먼저 이미지에 십자가(x)가 표시되는지 원(o)이 표시되는지 분류하는 분류기를 만듭니다. 여기서 이미지는 컬러 또는 흰색 픽셀로 표시되며 픽셀은 5 × 5 격자로 배열됩니다. 이 형식에서는 십자가와 원(솔직히 말해서 다이아몬드에 더 가깝습니다)의 이미지는 다음과 같습니다.
신경망 분류기를 구축하려면 우리가 배운 방법을 사용하여 문제를 해결할 수 있는 방식으로 문제를 형식화해야 합니다. 첫 번째 단계는 분류기에 대한 입력으로 사용할 수 있는 숫자 값으로 픽셀의 정보를 나타내는 것입니다. 사각형이 색칠되어 있으면 1을, 흰색이면 0을 사용합시다. 위 그래픽의 기호는 서로 다른 색상(녹색과 파란색)이지만 분류기는 색상 정보를 무시하고 색상/흰색 정보만 사용합니다. 이미지의 25픽셀은 분류기의 입력이 됩니다.
숫자 표현에서 어떤 픽셀이 어떤 것인지 확인하기 위해 텍스트를 읽을 때와 동일한 순서로 픽셀을 나열하기로 결정할 수 있습니다. 즉, 위에서부터 한 행씩, 왼쪽에서 오른쪽으로 각 행을 읽습니다. 예를 들어 십자가의 첫 번째 행은 1,0,0,0,1로 표시됩니다. 두 번째 행은 0,1,0,1,0 등입니다. 교차 입력에 대한 전체 입력은 1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1입니다.
첫 번째 단계는 입력의 선형 조합을 계산하는 기본 뉴런 모델을 사용합니다. 따라서 각 입력 픽셀에 대한 가중치가 필요하며 이는 총 25개의 가중치를 의미합니다.
마지막으로 단계 활성화 기능을 사용합니다. 선형 결합이 음수이면 뉴런 활성화는 0이 되며, 이를 십자가를 나타내는 데 사용하기로 결정합니다. 선형 결합이 양수이면 뉴런 활성화는 1이 되며, 이를 원으로 표시하기로 결정합니다.
모든 가중치가 동일한 숫자 값 1을 가질 때 어떤 일이 발생하는지 시험해 보겠습니다. 이 설정을 사용하면 교차 이미지의 선형 조합은 9(9개의 컬러 픽셀, 즉 9 × 1, 16개의 흰색 픽셀, 16 × 0)가 되고 원 이미지의 경우 8(8개의 컬러 픽셀, 8 × 1 및 17개의 흰색 픽셀, 17 × 0)이 됩니다. 즉, 선형 결합은 두 이미지 모두에 대해 긍정적이므로 원으로 분류됩니다. 분류할 이미지가 두 개뿐이라는 점을 고려하면 그다지 좋은 결과는 아닙니다.
결과를 개선하려면 선형 조합이 십자형에 대해서는 음수가 되고 원에 대해서는 양수가 되도록 가중치를 조정해야 합니다. 십자가와 원의 이미지를 구별하는 것이 무엇인지 생각해보면, 원은 이미지 중앙에 컬러 픽셀이 없지만 십자가는 있다는 것을 알 수 있습니다. 마찬가지로 이미지 모서리의 픽셀은 십자형으로 표시되지만 원은 흰색으로 표시됩니다.
이제 가중치를 조정할 수 있습니다. 작업을 수행하는 가중치는 무한합니다. 예를 들어, 중앙 픽셀(13번째 픽셀)에 가중치 -1을 할당하고 이미지의 네 측면 각각의 중간에 있는 픽셀에 가중치 1을 할당하여 다른 모든 가중치를 0으로 둡니다. 이제 교차 입력의 경우 중앙 픽셀은 값 -1을 생성하는 반면 다른 모든 픽셀의 경우 픽셀 값 또는 가중치는 0이므로 -1도 전체 값입니다. 이는 활성화 0으로 이어지며 십자가가 올바르게 분류됩니다.
그러면 원은 어떻습니까? 측면 중앙의 각 픽셀은 값 1을 생성하므로 총 4 × 1 = 4가 됩니다. 다른 모든 픽셀의 경우 픽셀 값이나 가중치가 0이므로 합계는 4입니다. 4는 양의 값이므로 활성화 값은 1이 되며, 원도 올바르게 인식됩니다.
행복한가요?
이제 웃는 얼굴에 대한 분류기를 구축하기 위해 유사한 추론을 따를 것입니다. 이미지의 입력 픽셀을 클릭하여 가중치를 할당할 수 있습니다. 한 번 클릭하면 가중치가 1로 설정되고 다시 클릭하면 -1로 설정됩니다. 활성화 1은 이미지가 행복한 얼굴로 분류되었음을 나타내며 이는 정확할 수도 있고 아닐 수도 있으며, 활성화 -1은 이미지가 슬픈 얼굴로 분류됨을 나타냅니다.
웃는 얼굴을 모두 정확하게 분류할 수 없다는 사실에 실망하지 마세요. 실제로 간단한 분류기로는 분류가 불가능합니다! 이는 중요한 학습 목표 중 하나입니다. 분류기가 너무 단순하기 때문에 완벽한 분류가 불가능한 경우도 있습니다. 이 경우 입력의 선형 조합을 사용하는 단순 뉴런은 작업에 비해 너무 단순합니다. 다양한 경우에 잘 작동하는 분류기를 구축할 수 있는 방법을 관찰하십시오. 일부는 대부분의 행복한 얼굴을 올바르게 분류하고 슬픈 얼굴의 경우 더 나쁘게 분류하거나 그 반대로 분류합니다.
행복한 얼굴과 슬픈 얼굴 모두에 대해 6/8 정확도를 달성할 수 있나요?
LESSON COMPLETE

