인공지능(AI : Artificial Intelligence)
인간의 지능이 가지고 있는 기능을 갖춘 컴퓨터 시스템을 뜻하며, 인간의 지능을 기계 등에 인공적으로 구현한 것을 말한다.
머신러닝/기계학습(ML : Machine Learning)
인공지능의 하위 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 뜻한다.
딥러닝(Deep Learning)
머신러닝의 하위 분야로 여서 비선형 변환기법의 조합을 통해 높은 수준의 추상화(다량의 복잡한 자료들에서 핵심적인 내용만 추려내는 작업)을 시도하는 기계학습 알고리즘의 집합을 뜻한다.
위에서 설명한 머신러닝의 한 분야인 딥러닝은 인공신경망(Artificial Neural Network)를 기초로 하고 있다. 인공신경망이라고 불리는 ANN은 사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘이다.
인간의 뇌에서 뉴런들이 어떤 신호, 자극 등을 받고, 그 자극이 어떠한 임계값(threshold)을 넘어서면 결과 신호를 전달하는 과정에서 착안한 것으로 여기서 들어온 자극, 신호는 인공신경망에서 Input Data이며 임계값은 가중치(weight), 자극에 의해 어떤 행동을 하는 것은 Output데이터에 비교하면 된다.
학습과정에서 파라미터의 최적값을 찾기 어려움
: 출력값을 결정하는 활성화함수의 사용은 기울기 값에 의해 weight가 결정되는데, 이런 gradient 값이 뒤로 갈수록 점점 작아져 0에 수렴하는 오류가 발생하기도 하고, 부분적인 에러를 최저 에러로 인식하여 더 이상 학습을 하지 않는 경우도 있음.
느린 학습시간
→ 그래픽 카드의 발전으로 많은 연산량도 감당할 수 있을 정도로 하드웨어 성능 좋아짐.
: 은닉층이 많으면 학습하는데 정확도가 올라가지만 그만큼 연산량이 기하 급수적으로 늘어남.
overfitting에 따른 문제
→ 사전훈련 통해 방지 가능
ANN 문제 해결을 위해 은닉층 확대.
ANN기법의 여러문제가 해결되면서 모델 내 은닉층을 많이 늘려서 학습의 결과를 향상시키는 방법이 등장하였고 이를 DNN(Deep Neural Network)라고 한다.
은닉층을 2개 이상 지닌 학습 방법. (보통 3개 이상)
DNN은 은닉층을 2개이상 지닌 학습 방법을 뜻한다. 컴퓨터가 스스로 분류레이블을 만들어 내고 공간을 왜곡하고 데이터를 구분짓는 과정을 반복하여 최적의 결과를 도출한다. 많은 데이터와 반복학습, 사전학습과 오류역전파 기법을 통해 현재 널리 사용되고 있다.
DNN 응용하여 CNN, RNN, LSTM, GRU 발전.
그리고, DNN을 응용한 알고리즘이 바로 CNN, RNN이다.
이 외에도 LSTM, GRU 등이 있다.
https://dbrang.tistory.com/1537
https://ebbnflow.tistory.com/119
https://velog.io/@arittung/ANN-DNN-CNN-RNN
https://velog.io/@arittung/CNN-ResNet50