Neural Networks
Feedforward / Recurrent Neural Networks
신경망의 가장 기본적인 architecture는 fully-connected Feedforward Neural Network (FNN)이라고 할 수 있다. Feedforward는 neuron이 동일하거나 이전 layer에 연결을 제공하지 않고 단순히 출력을 다음 layer로 전달한다는 의미이다.
fully-connected은 layer의 각 neuron이 이전 layer의 모든 neuron에서 들어오는 연결을 가지고 있음을 의미한다. 여기서, 주목할 것은 다른 유형의 신경망 또는 신경망 architecture가 많이 있다. 이것은 모두 동일한 neuron, 가중 연결 및 Activation Function으로 구성되어 있지만 특정 architecture는 특정 작업을 더 쉽게 해결할 수 있다.
기본적으로 FNN과 Recurrent Neural Network (RNN)의 두 가지 주요 유형이 있다. RNN은 동일한 layer 또는 이전 계층의 neuron에 연결된다는 점에서 FNN과 다르다. FNN에는 시간 감각이 없지만(각 입력은 이전 입력과 별개로 동일한 방식으로 처리됨) RNN은 이러한 상호 연결을 통해 내부 상태를 유지할 수 있으며 이는 각 시간 단계마다 업데이트된다. 또한 FNN 및 RNN 모두에 대해 서로 다른 architecture가 있다. "architecture"는 네트워크의 연결 및 topology가 특정 문제에 대해 잘 작동하는 것으로 알려진 특정 방식으로 배열되어 있음을 의미한다.
FNN에 대해 가장 잘 알려진 architecture는 컨볼루션 신경망 (CNN)일 것이다. CNN은 주로 이미지/객체 인식 작업에 사용되며 많은 관련 분야에서 최신 기술을 보유하고 있다. architecture에서 2D 모양의 불변성에 대한 사전 지식을 활용하기 때문에 문제를 해결하는 데 특히 능숙하다.
Training Neural Networks
이론적으로 원하는 값을 출력할 때까지 network의 개별 가중치를 수동으로 조정하는 것이 가능하지만 이는 빠르게 실행 불가능하다.
실제로 신경망은 항상 수십만 또는 수백만 개의 가중치를 사용한다. 신경망 훈련에서 널리 쓰이는 방법은 Machine learning이다. Machine learning은 지도 학습, 비지도 학습 및 강화 학습의 세 가지 주요 유형으로 분류할 수 있다. 가장 널리 사용되는 기계 학습 알고리즘은 경사 하강법을 사용한다 이는 가중치를 덜 잘못 만드는 방향으로 단계별로 가중치를 자동으로 업데이트하는 방법이다.
Evolutionary Algorithms은 생물학적 진화에서 영감을 얻었지만, 분명히 생물학적 현실보다는 자연 과정의 단순화를 나타낸다. Evolutionary Algorithms에는 다양한 유형이 있지만 일반적으로 평가, 선택, 재조합, 돌연변이의 4단계 주기를 공유한다. 다시 말해서, 다수의 무작위 주제가 생성된다. 그리고 문제를 얼마나 잘 해결할 수 있는지 평가된다. 그 중 최고가 선택되고 결합되어 새로운 주제를 형성한다. 그것으로 새로운 주제가 돌연변이가 되고 이것을 반복한다.
Activation Functions
neuron은 연결된 neuron에 값을 전달하기 전에 일반적으로 계산된 값을 특정 수학 함수로 변환한다. 모든 neuron은 고유한 Activation Functions을 가질 수 있지만 대부분 동일한 기능을 사용하는 layer로 볼 수 있다. 여기서 주로 사용하는 함수는 Sigmoid이다. 이것은 표준이었지만 요즘에는 tanh, softsign, ReLU의 함수가 사용되고 있으며 Sigmoid는 특정 설정에 대해 차선책인 것으로 밝혀졌다.
'AI-driven Methodology > ANN' 카테고리의 다른 글
[ANN] 순환 신경망 (Recurrent Neural Network, RNN) (2) (0) | 2021.12.14 |
---|---|
[ANN] 순환 신경망 (Recurrent Neural Network, RNN) (1) (0) | 2021.12.14 |
[ANN] CNN (Convolutional Neural Network) (0) | 2021.12.10 |
[ANN] 퍼셉트론 (Perceptron) (0) | 2021.12.10 |
[ANN] SNN (Spiking Neural Networks) (0) | 2021.12.10 |