인터넷에 neural network를 검색해보면 정말 수 많은 정의가 나온다.
NN을 처음 접하는 사람이라면 이해할 수 없을 것 같은 정의가 많다.
formal한/수학적인 정의를 따르기보단, 나의 언어로 풀어보려고 한다.
Neural Network(인공 신경망)
내 나름대로 정의해본 neural network는 아래와 같다.
인간의 뇌가 neuron들이 연결되어 작동하는 것처럼
컴퓨터도 neuron 단위로 연산을 하고, neuron을 연결해서 문제를 해결하는 머신 러닝 기법.
NN의 목표는 문제를 잘 해결하는(원하는 목적을 달성하는) 최적의 neuron 연결 구조와 weight(연결의 가중치)를 찾는 것이다.
여기서 neuron 사이의 연결 구조를 Neural Architecture라고 부른다. 흔히 말하는 모델이 neural architecture이다.
일반적으로는 neural architecture를 고정시킨 상태에서 학습을 통해 weight를 찾는다.
고정시킨다는 것은 프로그래머가 결정한다는 의미이고, 학습을 한다는 것은 data를 input으로 넣어 연산을 수행한다는 것이다.
Neural Architecture의 종류
많은 연구를 통해 다양한 neural architecture가 제시되었다.
각 분야별로 좋은 성능을 보이는 neural architecture가 있다.
대표적으로 image recognition, image processing에는 CNN를 사용하며,
natural language processing에는 RNN이 많이 이용된다.
많이 이용되고 좋은 성능을 보인 경우가 많은 것일 뿐, 절대적인 답은 아니다.
CNN과 RNN에 대해서는 다음에 자세히 다룰 것이다.
neural architecture는 프로그래머/연구자가 시행착오와 휴리스틱으로 결정하는 경우가 일반적이었으나,
최근에는 neural architecture조차 머신 러닝으로 해결하려는 시도가 이루어지고 있다.
이러한 연구 분야를 NAS(Neural Architecture Search)라고 한다.
학습 과정
1. 데이터 인코딩
주로 벡터 / 행렬로 인코딩 한다
2. 학습
-1) feedforward
-2) backpropagation
3. validation
4. model tuning
'Machine Learning > 이론 정리' 카테고리의 다른 글
3-3. Neural Network 연산 - feedforward, loss function (0) | 2020.02.14 |
---|---|
3-2. Neural Network(인공 신경망) 의 구조, activation function(활성함수) (0) | 2020.02.12 |
2. 인공지능(artificial intelligence) vs. 머신러닝(machine learning) vs vs. 인공 신경망(neural network) 비교 (0) | 2020.02.11 |
1-2. supervised learning / unsupervised learning / reinforcement learning (0) | 2020.02.09 |
1-1. Machine Learning이란? (0) | 2020.02.09 |