개발/AI

ai 기본 개념

반응형

AI(Artificial Intelligence)-------|

|                                 |

| ML(Machine Learning)--------| |

|   |                           | |

|   |  DL(Deep Learning)------| | |

|   |  |                      | | |

|   |  |----------------------| | |

|   |                           | |

|   |---------------------------| |

|                                 |

|---------------------------------|

 

인공지능 : 기계로 만들어진 지능

 

머신러닝은 : 대량의 데이터와 알고리즘을 통해 학습 시키는 것

 

딥러닝 : 대량의 데이터와 알고리즘을 통해 학습 시킴(인공신경망 기법)

 

Y = f(Xw+b)

 

X : 입력값

w : 가중치

b : bias

Y : 결과값

 

X와 Y를 알 고 있을때 w와 b를 찾아가는 과정

 

Activation Function

loss Function

dropOut

softMax

CNN

RNN

NLP

 

forward : loss를 계산하는 과정

backward : loss를 수정하는 과정

 

퍼셉트론(Perceptron) : 초기 인공신경망, 다수의 입력으로 하나의 결과는 내보내는 알고리즘

 

Optimization : 결과값에 가기위해 최적화를 찾는 과정

 

모델은 train 하고 저장해서 불러온 다음 predict로 쓴다.

 

모델을 변경하면 새로 train을 해야한다.

 

train을 할때는 데이터의 80%를 train에 사용하고 20%는 테스트로 사용한다.

 

train 그래프와 test 그래프가 비슷하게 나오면 성공 (test 그래프가 너무 낮게 나오면 overfit)

 

overfitting : 트레이닝 set이 너무 과최적화되어 실제 데이터를 집어 넣어 분류를 하려고하면 정확도가 떨어지는 것

 

vanishing gradient : layer가 deep해지면서 backpropagation으로 에러를 뒤로 전파하게 되는데에 문제가 생긴것. 경사하강법을 통해 에러에 대한 값을 새로운 w에 업데이팅 시켜줘야 하는데 각각의 레이어를 계속 거치면서 계속 경사하강법을 통해 미분하고 미분하고 하다보니 뒤로 전해지면서 에러값이 현저히 작아져 학습이 제대로 안됨

 

Bagging : 데이터를 병렬로 나눠서 각각 모델에 학습시킨 뒤 합치는 것

 

Boosting : 데이터를 나눠서 직렬로 학습시킨 모델을 나눈 데이터에 학습을 시키는 것

 

CNN

stride: 움직일 갯수

padding : 경계선을 인식하기 위한 바깥에 개수 채우기

kernel 백터를 데이터 백터와 연산 : convolution

pooling : conv로 나온 데이터를 압축? 하는 과정

이 과정을 반복해서 모델을 만드는게 CNN

 

 

epochs = 순방향패스, 역방향 패스 과정을 한번 완료 된 것 (일반적으로 전체 데이터 셋에 대해 한 번의 학습 과정이 완료됐다고 단편적으로 이해해도 됨)

iteration = 1epochs를 몇개로 나눌 것인지

batch size = 1iteration의 크기

반응형