1. 인공 신경망
인공신경망(Artificial Neural Network)는 생명체의 학습 매커니즘을 모방해 실제 문제를 해결하고자 하는 일련의 시도를 말한다.
인간의 신경계는 뉴런 이라고 하는 신경세포들로 이루어져 있다. 뉴런들은 축삭돌기와 수상돌기로 연결 되어 있으며 둘이 접하는 부분을 시냅스라고 한다.

이러한 연결에서의 자극의 전달은 역치 등과 같은 외부 자극의 정도에 반응해 변하게 된다.
생물을 공부하고자 하는게 아니니까 상기 부분에 대해 "인공"적으로 생각을 해보자
이러한 생물학적 매커니즘을 흉내 낸다면 어떨까?
인공 신경망의 각 뉴런들은 가중치를 통해서 열결괴어 있고 이는 시냅스의 연결 강도와 같다고 이해하자.
뉴런에 주어지는 각 입력에는 가중치가 곱해지기 때문에 자중치는 해당 계산 강위가 계산하는 함수 값에 영향을 미친다.
함수라고 적은것을 기억하자. 함수는 특정한 x 값의 입력에 대해 y값이 단 하나로 결정되는 방식을 통칭한다.

상기 구조 처럼 복잡하게 얽힌 인공 신경망은 각 입력 뉴런의 계산 결과를 출력 뉴런으로 전파 함으로서 전체적으로 하나의 "함수"를 계산하게 된다.
작은 단위의 함수를 모아 연산해서 큰 단위의 함수를 계산한다고 이해하자.
그 과정에서 가중치들이 중간 매개변수로 작용한다.
인공신경망의 "심층학습"에 대해서 이야기를 해야 할텐데 "심층"은 상기 히든레이어가 2이상인 경우라 생각하고 "학습"이란 뉴런을 연결하는 가중치를 변경함으로써 일어난다고 생각하자
우리가 외부 자극을 통해 학습하는것과 마찬가지로 인공신경망의 학습에도 입출력에 대한 외부 자극이 필요하게 된다.
훈련 알고리즘은 특정입력에 대해 신경망이 예측한 결과가 잘 부합하는지에 대해서 가중치의 정확성을 평가하고 향상시킨다.
"평가"하고 "향상"시킨다는 말에 주목하자
신경망의 학습 과정 및 평가 과정에서 나타나는 오차는 우리가 공부하면서 오답노트를 작성하는 짜증나는 경험에 비유할 수 있다.
개념이 잘 잡히지 않아 혹은 책을 덜 읽거나 잘못 이해해 특정 단원에 대한 공부가 안되는것처럼 인공신경망 또한 마찬가지로 생각 할 수 있겠다.

이러한 오차 들은 시냅스의 연결 강도의 변화를 일으키고 중간 가중치의 변화를 일으킨다.
이런 가중치 변경은 예측 결과의 정확성을 위한 예측 오차를 평가하고 반영하는 과정이라고 생각할 수 있다.
이러한 과정을 수백번 수천번을 거쳐 "단련"된 가중치 들은 정확한 예측의 가능성이 높아지게 되고
처음보는 입력에 대해 지금껏 단련한 과정에 유추해 추론하게 된다.
이 과정을 모형 일반화(model generalization)라고 한다.
물론 이렇게 고차원적인 생물과 컴퓨터 간의 비유가 아니라 한편에서는 기계학습의 고전적 모형에 대한 발전이라고 보는 견해도 있다.
기본 계산 단위 들은 대부분 최소제곱 회귀나 로지스킥회귀와 같은 전통적인 기계학습 알고리즘을 포함 하는 것이기 때문이다.
이후 포스팅에서는 심층학습을 위한 준비 과정과 계산 단위의 의존관계 등과 같은 점차 복잡한 내용에 대해서 다뤄보고자 한다.