신경망 (Neural Networks)
1957년 Rosenblatt이 고안한 Perceptron(퍼셉트론) 알고리즘이 발전해 지금까지 이르게 되었다.
Artificial Neural Networks(ANN, 인공신경망)이라고 불리는 학습 모델이며, 뇌의 실제 신경계의 특징을 모사하여 만들어진 계산 모델(computational model)이다.
뇌 신경망의 작은 구조인 뉴런(Neuron)을 모사한 인공 뉴런인 퍼셉트론은 다수의 입력 신호를 받아 하나의 신호를 출력한다.
최근에는 '뉴럴넷'이라는 이름으로 가장 많이 사용된다.
-
신경세포(Neuron)
- 뉴런, 수상돌기(Dendrites)에서 입력신호(다른 뉴런과의 시냅스)를 받아들임
- 신경세포(Cell body)에서 정보를 통합함.
- Axon Hillock의 임계값을 통과하면 축삭돌기(Axon)로 최종 출력 신호(또 다른 뉴런으로 전파)를 전송함
- 퍼셉트론
- 아래 그림에서 '원'들로 표현된 네트워크에서 한 개의 원을 뉴런(neuron) or 노드(node)라고 함
- 두번째 그림에서 한개의 뉴런으로 여러 입력신호(x0, x1, ...)가 입력되면 각각 고유한 가중치(weights, w0, w1, ...)가 곱해지고 더해짐
각각의 가중치는 뉴런끼리의 시냅스(synapses)의 연결강도(시냅스의 두께, 개수)와 같은 역할을 함.
- 가중치가 곱해진 값들은 모두 더해져 정해진 임계값(threshold)을 넘을 경우에만 다음 노드들이 있는 층(layer)으로 신호가 전해짐
신경망 층 (Layer)
신경망은 여러 층(layers)으로 구성이 되는데, 기본적으로 입력층(input layers), 은닉층(hidden layers), 출력층(output layers) 으로 나뉜다.
- 입력층은 데이터셋으로부터 입력을 받는다.
- 입력 변수의 수와 입력 노드의 수는 같다.
- 보통 입력층은 어떤 계산도 수행하지 않고 그냥 값들을 전달하기만 하는 특징을 가지고 있다.
- 신경망의 층수(깊이, depth)를 셀 때 입력층은 포함하지 않는다.
- 위의 그림의 신경망은 2층이라고 할 수 있다.
은닉층 (Hidden Layers)
- 계산이 일어나는 층이 둘 이상인 신경망을 다층(multilayer) 신경망 이라고 부른다.
- perceptron에서 이름을 빌려와서, multilayer perceptron (MLP)라고 부르기도 한다.
- 계산이 없는 입력층과 마지막 출력층 사이에 있는 층들을 은닉층(Hidden Layers) 이라고 부른다.
- 은닉층에 있는 계산의 결과를 사용자가 볼 수 없기(hidden) 때문에 이런 이름이 붙었다.
- 딥러닝(deep learning)은 사실 두 개 이상의 (이때 부터 깊다(deep)라고 합니다) 은닉층들을 가진 신경망, 입력층을 제외하고 세보면, 3개 이상의 Layer를 갖는 신경망을 의미한다.
출력층 (Output Layers)
- 신경망 가장 오른쪽, 마지막 층이다.
- 출력층에는 대부분 활성함수(activation function)가 존재하는데 활성화함수는 풀고자 하는 문제에 따라 다른 종류를 사용한다.
-회귀 문제에서 예측할 목표 변수가 실수값인 경우, 활성화함수가 필요하지 않으며 출력노드의 수는 출력변수의 갯수와 같다.
- 이진 분류(binary classification) 문제의 경우, 시그모이드(sigmoid) 함수를 사용해서 출력을 확률 값으로 변환하여 클래스(Class or label)를 결정하도록 한다.
- 다중클래스(multi-class)를 분류하는 경우, 출력층 노드가 부류 수 만큼 존재하며 소프트맥스(softmax) 함수를 활성화 함수로 사용한다.
- 복잡한 딥러닝 방법론들에서는 은닉층에서도 활성함수를 사용하기 시작한다.
신경망의 Nonlinearities(비선형성)
신경망 학습은 데이터에서 필요한 특성들을 신경망이 알아서 조합하여 찾아낸다.
즉, 최소한의 데이터에 대한 전처리는 해야 하지만 심화된 특성 공학(Feature Engineering)을 사용해 특성들을 찾아낼 필요는 없다는 것이다.
깊은 신경망, 즉 딥러닝과 머신러닝의 차이는 표현학습(representation learning)에 있다.
딥러닝은 데이터 특성(feature)을 우리가 풀고자 하는 문제를 풀기 쉽도록 표현(representation)하도록 학습하는 능력이 있다. 신경망의 구조와 깊이를 변화시키며 데이터를 더욱 유용하게 표현할 수 있다.
Such a great way to share Deep Learning - the Basic Structure of Neural Networks as it can be so difficult for many people and cause so much confusion regarding the topic. Therefore Assignment Help UAE is also available to help students with their academic problems and help them to facilitate the challenging deadlines.