뉴런과 인공지능
뉴런은 신경세포라고도 하며 뇌는 이 뉴런들이 뭉펴서 큰 군집을 이루고 있습니다.
가지돌기 : 수신부
축삭 : 전달
축삭 말단: 송신부
출처 : https://ko.wikipedia.org/wiki/%EC%8B%A0%EA%B2%BD%EA%B3%BC%ED%95%99
산티아고 라몬 이 카할이 스케치한 비둘기의 소뇌에 위치한 뉴런을 보면
뉴런들이 나무의 가지처럼 연결되어 있습니다.
뉴런은 일정한 크기 이상의 자극을 전달합니다.
이런 특성을 활성화 함수로 만들어서 뉴런을 모방한 인공뉴런을 만들려고 시도했습니다.
이때 일정이상의 신호만 보내는 것을 흉내 내려고 계단함수(Step Function)를 만들었습니다.
하지만 이것은 너무 제한적이고 고정적이고 디지털적이라 아날로그적인 자연계의 문제를 표현하는데 한계가 있었습니다.
그래서 좀 더 아날로그 적인 시그모이드 함수로 대체했습니다.
시그모이드 함수는 로지스틱 함수이며 S자 모양의 함수입니다.
-무한대 < x(입력) < +무한데
0< y(출력) < 1
상수 e는 자연로그의 밑이 되는 수입니다. 오일러의 수, 자연상수, 네이피어 상수라고도 부릅니다.
(2.71828......)
시그모이드 함수를 사용해 드디어 자연계의 뉴런을 기계적인(sw적인) 인공뉴런으로 만들었습니다.
인공뉴런을 노드라고 부릅니다.
뉴런들이 가지처럼 네트워크를 이루고 있습니다.
그래서 우리는 여러 개의 연결된 인공뉴런을 망으로 만들어서 사용합니다.
이것을 Aritificial Neural Network(ANN)라고 부릅니다.
그러다 최근 2006년에 제프리 힌턴에 의해서 심층신경망(Deep Neural Network, DNN)이라고 명명되었습니다.
딥러닝(Deep Learning)은 Deep Neural Network를 학습시킨다는 뜻입니다.
출처 : https://ko.wikipedia.org/wiki/%EC%A0%9C%ED%94%84%EB%A6%AC_%ED%9E%8C%ED%84%B4
신경망을 연결시 계층(Layer)이 존재합니다.
아래는 이전 Layer의 모든 노드로부터 다음 Layer의 모든 노드가 연결된
Fully Connercted Layer입니다.
연결은 W(Weight) 가중치 값으로 표현됩니다.
이 값은 처음에는 임의의 값을 주고
학습이 진행되면 학습에 따라 변화하는 HyperParameter(하이퍼 파라미터)입니다.
결국 Deep Learning의 학습은 W의 변화입니다.
신경망은 W을 학습하는 것이며 신경망은 연결주의 인공지능이라 합니다.
W1, 1 : 현재 1 노드 -> 다음 1 노드
W1, 2 : 현재 1 노드 -> 다음 2 노드
W3, 2 : 현재 3 노드 -> 다음 2 노드
노드의 역할은 이전 노드의 신호를 합치고 활성화 함수를 통해서 신호의 변화를 줍니다.
가중치는 신호의 세기를 나타냅니다.
가중치가 높으면 신호가 세게 전달되고 낮으면 약하게 전달됩니다.
원래 노드에는 절편(bias)도 있지만 현재는 최대한 단순한 신경망을 만들기 위해서 절편(bias)은 생략했습니다.
생략해도 학습을 잘 됩니다.
y= ax + b, a는 기울기, b는 절편인데 a가 학습에 결정적인 영향을 미치고 bias는 미세조정의 역할을 합니다.
그래서 현재는 생략해도 무방합니다.
다만 Keras나 Pytorch의 노드에서는 절편(bias)이 존재합니다.
신경망이 깊어진다는 것은 은닉층이 더 많이 생긴다는 뜻입니다.
현재 Fully Connected Layer로 구성했습니다.
이 뜻은 이전 층의 모든 Layer와 다음층의 모든 Layer가 연결되었다는 뜻인데 필요에 따라서 일부로 끊기도 합니다.
(이것을 Dropout 이라고 합니다)
바이오 컴퓨터(생물의 뇌)는 기계적 컴퓨터에 비해 저장 능력이나 연산 속도가 떨어져 보이지만, 먹이를 찾고 도망가는 수 높고 정교한 업무를 수행합니다.
또 일부 손상이 있거나 완전하지 않은 신호에 대해 기계적 컴퓨터에 비해 놀라울 정도로 유연하게 대응하고 동작합니다.
인공신경망은 이런 바이오 컴퓨터의 작용을 모방하고 중요한 동작을 모델링하고 수학적으로 재구성한 방식입니다.
딥러닝은 이러한 인공신경망을 통해 자연계나 인간의 복잡하고 비정형적인 문제를 성공적으로 다루고 있습니다.
다만 Weight값들은 수치로 되어 있고 이것들 개개의 요소가 전체 결과에 어떤 영향을 미치는지는 인과관계를 추적하기 어렵습니다.
그래서 딥러닝을 Black Box라고 표현합니다.
하지만 최근에는 XAI(eXplainable AI, 설명가능 인공지능) 연구를 통해 Black Box를 해독하려고 하고 있습니다.