본문 바로가기
네이버클라우드/AI

AI 1일차 (2023-05-08) 인공지능 기초 - 인공지능, 머신러닝, 딥러닝

by prometedor 2023. 5. 8.

인공지능

일반적으로 인간의 지능이 필요하거나 인간이 분석할 수 있는 것보다 규모가 큰 데이터를 포함하는 방식으로 추론, 학습 및 행동할 수 있는 컴퓨터 및 기계를 구축하는 기술

 

http://www.tcpschool.com/lectures/img_deeplearning_01_ai.png

 

ㄴ 인공지능 - 계산, 학습 등 인간의 지적능력을 컴퓨터를 통해 구현하는 기술
ㄴ 머신러닝 - 특정 부분을 스스로 학습해 성능 향상
ㄴ 딥러닝 - 인간의 뉴런과 비슷한 인공신경망으로 정보 처리 
 
 
 

머신러닝과 딥러닝

머신러닝

ㄴ 인공지능 분야에서 데이터를 활용하여 모델을 학습시키고, 이를 이용하여 예측, 분류, 군집 등의 문제를 해결하는 기술
ㄴ 사람이 훈련 데이터 셋 각각의 특징을 분리

 

머신러닝 라이브러리

ㄴ TensorFlow - 구글에서 개발한 오픈소스 머신러닝 라이브러리
ㄴ PyTorch - 파이썬 기반의 오픈소스 머신러닝 라이브러리
ㄴ scikit - 파이썬에서 사용하는 머신러닝 라이브러리 중 하나

 
 

딥러닝

http://bigdata.dongguk.ac.kr/lectures/AI/_book/figures/nn-ann.PNG

ㄴ 일련의 단계들 또는 레이어들의 연산을 사용하는 머신러닝 알고리즘
ㄴ 레이어를 세로로 쌓았을 때 모양 때문에 깊이(deep)라고 부른다
ㄴ 훈련 데이터 셋 각각의 특징 추출 및 분류도 인공지능 자체에서 직접 학습

 

= > 머신러닝 안에 딥러닝이 들어가있는 것

https://www.dentalarirang.com/news/photo/202103/31080_43886_3020.jpg

 
 
 

딥러닝 - 퍼셉트론(단층 퍼셉트론(Single-Layer Perceptron))

http://bigdata.dongguk.ac.kr/lectures/AI/_book/figures/Rosenblatt.PNG

ㄴ 인공 신경망의 한 종류
ㄴ 뉴런의 모델을 모방하여 입력층, 출력층으로 구성한 모델
ㄴ 구성요소 : 입력값, 가중치, 활성화함수, 출력값(예측값)
ㄴ 최적의 매개변수(w, b)를 찾는 것
 

y = wx + b

ㄴ x는 입력값, w는 가중치(Weight), y는 출력값
 w 가 클 수록 해당 입력값이 중요하다는 것을 의미
 
각 입력값이 가중치와 곱해져서 인공 뉴런에 보내지고, 각 입력값과 그에 해당되는 가중치의 곱의 전체 합이 임계치(threshold)를 넘으면 종착지에 있는 인공 뉴런은 출력 신호로서 1을 출력하고, 그렇지 않을 경우에는 0을 출력

https://wikidocs.net/images/page/24958/%ED%8D%BC%EC%85%89%ED%8A%B8%EB%A1%A03.PNG

ㄴ 입력층(input layer), 출력층(output layer)으로 구성
ㄴ 입력층(값을 보내는 단계)과 출력층(값을 받아서 출력하는) 두 단계로만 이루어짐
 
 
 

딥러닝 - 다층 퍼셉트론(MultiLayer Perceptron, MLP)

https://wikidocs.net/images/page/24958/%EC%9E%85%EC%9D%80%EC%B8%B5.PNG

ㄴ 딥러닝은 다층 퍼셉트론의 구조에서 나온 것
ㄴ 명칭 : 노드(node, 뉴런)는 에지(edge)라고 하는 선으로 연결됨
ㄴ 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구성
중간에 은닉층이 존재한다는 점이 단층 퍼셉트론과 다름 (단층 퍼셉트론 : 입력층(input layer), 출력층(output layer)으로 구성)
 
= > 은닉층을 어떻게 구성하냐 뉴런을 어떻게 구성하냐에 따라 성능이 달라짐

 

 

 

옵티마이저 (Optimizer)

ㄴ딥러닝 모델에서 손실 함수(loss function)를 최소화하는 파라미터들의 값을 찾기 위한 최적화 알고리즘

ㄴ 모멘텀, 아다그라드, RMSprop, Adam 등이 있음

ㄴ 옵티마이저 중 'adam' 이 가장 많이 사용됨

 

 

학습률 (learning rate)

ㄴ 경사하강법에서 한번의 업데이트 당 가중치를 얼마나 변화시킬지를 결정하는 하이퍼파라미터 (모델의 학습 속도를 조절하는 역할)

ㄴ 학습률이 너무 작으면 최적의 w 를 찾아가는데 너무 오래 걸릴 가능성이 크고, 너무 크면 최적의 지점을 건너뛰어버리고 발산해버릴 수도 있음

ㄴ 일반적으로 학습률은 0.001, 0.01, 0.1과 같이 10의 승수 형태로 지정ㄴ 학습률을 설정할 때는 경험적으로 좋은 값들을 참고하면서 실험을 통해 찾는 것이 일반적ㄴ 학습률을 일정하게 유지하는 것보다 학습이 진행되면서 학습률을 점차 줄여가는 것이 학습 성능을 향상시키는데 도움이 됨

 


경사하강법 (Gradient Descent)

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998994505C7750611E
https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996C733B5C7753A21F

ㄴ 함수의 기울기(gradient)를 이용하여 함수의 최솟값(minimum)을 찾는 방법

ㄴ 접선이 많이 기울어져 있을 때는 최소값을 가지는 지점과 거리가 멀다고 생각하여 많이 이동하고, 접선의 기울기가 0에 가까울 때는 조금씩 이동하도록 설계됨

ㄴ 현재 위치에서 기울기의 반대 방향으로 일정 거리만큼 이동하면서 최솟값을 찾아감

ㄴ 이 과정을 반복하면서 점차적으로 최솟값에 접근하게 됨

ㄴ 평균 제곱 오차(MSE)가 훨씬 유리

 


손실함수 (Loss Function)

ㄴ 모델이 예측한 값과 실제 값 사이의 차이를 계산하여 모델이 얼마나 정확하게 학습되고 있는지 평가하는 함수(지표)

ㄴ 손실 함수의 값이 작을수록 모델의 성능이 높은 것으로 판단함

ㄴ 가장 기본적인 손실 함수는 평균 제곱 오차(Mean Squared Error, MSE)

ㄴ 분류 문제에서는 교차 엔트로피(Cross Entropy)나 이중 로그 손실(Binary Cross Entropy) 등이 사용

ㄴ 회귀 문제에서는 평균 절대 오차(Mean Absolute Error, MAE), 평균 제곱 오차(Mean Squared Error, MSE) 등이 사용됨

 

- MSE (Mean Squared Error)

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRPl4Z%2FbtqTV9xabHb%2Fucd3SbPe9OETka1hsO8jUK%2Fimg.png

ㄴ 평균 제곱 오류 --> 출력 결과와 데이터 차이 제곱의 평균으로 정답과 오답의 모든 확률 고려

ㄴ 예측값과 실제값의 차이를 제곱한 후 평균을 구한 것으로, 예측값과 실제값의 차이가 클수록 오차가 크게 반영됨

 

- MAE (Mean Absolute Loss, L1 Loss)

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb864xP%2FbtqT8JiSTlL%2FGnL4tGiFBB0DfLSqtKKmek%2Fimg.png

예측값과 실제값의 차이의 절댓값을 평균한 것으로, 예측값과 실제값의 차이가 클수록 오차가 크게 반영됨

ㄴ 가중치 값(w)이 (-) 일 경우에 사용

 

MSE vs MAE

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbT6RWB%2FbtqTYQ5auBd%2FujUiWhMykxHTY4Wsj05Wv1%2Fimg.png

 

ㄴ MSE는 loss가 크면 gradient도 크고, loss가 작으면 gradient도 작기 때문에 최적값을 찾는 것이 보다 수월

 

ㄴ MAE는 loss가 크던 작던 항상 gradient가 일정

ㄴ Loss가 작아도 gradient는 작지 않기 때문에 경사하강법(gradient descent)를 사용해 최적값을 찾는 데에 어려움이 존재

 


활성화 함수 (Activation Function) – Sigmoid, ReLU, Softmax

Sigmoid

ㄴ 입력값을 0과 1 사이의 값으로 압축하여 출력하는 함수

ㄴ 이진 분류 문제에서 출력층에 주로 사용

ReLU

ㄴ 입력값이 0보다 작으면 0으로, 0보다 크면 그대로 출력하는 함수

ㄴ 다중층 신경망에서 입력층과 은닉층에 주로 사용

 

Softmax

ㄴ 다중 분류 문제에서 출력층에 사용

ㄴ 입력받은 값을 출력으로 0과 1사이의 값으로 모두 정규화하여 출력

ㄴ 출력값들의 총합은 1