230310 딥러닝 개념
@ 내가 나중에 보면서 모르는 개념 체크하기 위해 적는 글
인공지능(큰 개념)
>머신러닝(중간 개념)
>딥러닝(작은 개념) ~> 머신 러닝 안에 무수히 많은 알고리즘 중에 (뉴럴 네트워크) 알고리즘을 '딥러닝'이라고 부름
인공 지능의 종류 :
약 인공지능 (Narrow AI) : 한 분야의 사람 처럼
강 인공지능 (General AI) : 전반적인 모든 분야에서 사람 처럼
초 인공지능 (Super AI) : 사람보다 판단을 잘함
-> 현재는 약 인공지능과 강 인공지능 사이의 어딘가
머신러닝 : 경험(E)으로 부터 학습해서 일(T)에 대한 성능(P)을 올리는 것
~> 과거의 데이터를 이용해 판단 하는 것
머신러닝의 종류
1. 지도학습 : 데이터 + 답 -> 학습, 규칙을 컴퓨터가 찾는 것 (예측, 분류)
2. 비지도학습 : 컴퓨터가 알아서 분류, 답 찾기
3. 강화학습 : 틀리면 혼나는 것
선형적 관계 : 어떤 수가 변화하면 다른 수도 같이 변화한다. -> 상관관계
뉴럴 네트워크 : 인공 신경망
퍼셉트온 ( 일정한 역치 이상의 자극을 주면, 신경처럼 반응 하도록 동작하는 것(return 1)
인공 신경망은 XOR 연산을 못품 -> 1차 겨울
XOR 연산
0 0 | 0
1 0 | 1
0 1 | 1
1 1 | 0
-> 현실에 가장 알맞는 알고리즘,
예시) 회사를 고를 때
돈 많이 줌 1 적게 줌 0
야근 적게 함 1 많이 함 0
돈 적게 주고 야근 많이 하는 회사는 걸러야함 : 0
돈 적게 주는데 야근 많이 안하면 갈만함(워라벨!!) : 1
돈 많이 주는데 야근 많이 하면 갈만함(쇼미더머니!!) : 1
돈 많이 주는데 야근 적게 하면 수상한 회사 (이상한 회사일 가능성이 있음) : 0
XOR 연산 못하는 이유 -> xor은 어떻게 표현하지?
-> 해결하려고 나온게 다차원 신경망 이론
딥러닝 :
정리 없이 많은 데이터를 가져와 학습, 속도 느림(많아서)
얼만큼 반복해서 찾을 지는 우리가 정해줌
다차원 신경망 이론, 기존 머신러닝은 사람의 전처리가 필요
딥러닝은 특징추출기(Feature Extractor)로 컴퓨터가 계산함
딥러닝에는 Feature Extarctor 층과 Classifier 층으로 구성 되어 있음
Feature Extractor : 데이터의 특징을 알아서 뽑아냄
Classifier : 데이터를 분류함
딥러닝 구성 :
입력층(input layers)
계산층(hidden layers_은닉층)
~> 이것이 하나면 퍼셉트론, 2층 이상이면 딥러닝
~> 하나 이상이면 딥러닝으로 봄, hidden layers가 없으면(입력층->출력층) 퍼셉트론
- 은닉층이 많아질 수 록 '인공신경망이 깊어졌다(Deep)' 고 표현
- '은닉층을 어떻게, 몇 겹으로 연결하는가'가 요즘 딥러님의 쟁점
출력층(output layers) : 모든 것이 연결되어 있음 (전결합)
~~>이런 방식으로 연결 하는 것을 DNN(Deep Neural Network)라고 함
※ 층이 늘어날 때 마다 차원이 늘어난다고 이해하기
딥러닝 단계 :
1. 학습단계
Training Input(학습 입력) + Training Groundtruth(학습 정답) => 네트워크 구조(Network Architecture) => 손실 함수(Loss Function)
- 네트워크 구조 : 머신러닝의 알고리즘// CNN, RNN ...//쉽게 얘기하면 네트워크 하나하나에 y=wx+b 를 계산, 각 뉴런들이 입력을 받아서 계산한다.
- 손실 함수 : 오차 계산, 이 오차를 업데이트 시켜줌 (역방향)
~>Back Propagation (역전파 알고리즘)
2. 테스트 단계
- 테스트 하는 단계
딥러닝의 동작 원리 : 컴퓨터가 규칙을 찾게 끔 해준다. (기존의 규칙기반X)
딥러닝으로 할 수 있는 것 :
분류, 회귀, 물체 검출(Object Detection), 영상 분할(Image Segmentation), 영상 초해상도(Image Super Resolution) ...
- Detection, Segmentation ... 도 결국은 지도 학습
※ 요즘 나오는 chat gtp 등은 생성모델(Generative)
_> 프롬포트 키워드로 개발
LLM (Large Language Models) 및 제너레이티브 ML 도구 :
OpenAI 의 GPT-3 (텍스트), DALL-E 및 Midjourney (텍스트 – 이미지), Google의 LaMDA (대화형)
단어 체크! -- 다음 주 금요일에 들어와서 얼마나 아나 체크해보
----------
Back Propagation
편미분 연쇄 규칙 dy/dx = dt/dx * dy/dt
경사 하강법
손실 함수
퍼셉트론
활성 함수(activation function)
Drop Out
Optimizers
----------
cost function -> 비용 함수 (오차)
J(θ1,θ2) = 1/2n*∑w(x - y) ^ 2
경사하강법
θi+1 := θi - α df/dx(xi)
역전파 (Back Propagation)
역방향으로 weight를 업데이트 시킴
알고리즘을 빌딩 형태로 표현 ~> 심층 믿음 신경망(DBN)
RBM(제한된 볼츠만 머신)을 빌딩블럭(building block)과 같이 여러 층으로 쌓아 올린 형태
~> Multi-Label
기울기 소실(Vanishing Gradient) 문제
역방향으로 weight를 보낼 때 공식에 의해 1/2식 줄어드는데
hidden layers(은닉층)이 엄청나게 길어지면서 back propagation 공식으로 줄어드는 오차가 엄청나게 적어져서 [(1/2)^n]
이걸 해결해야함
->Drop out 등 이용
딥러닝 프레임 워크: mxnet(컴퓨터 묶어서 사용), TensorFlow, torch
빅데이터 프레임 워크 사용시
장점 <- 내부적으로 최적화, 안전한 구현
단점 <- api 제공X 구현 어려움, 수준 이상 최적화 어려움, api 자체 버그