Kim Seon Deok
chapter2 pytorch2. Ai Background-1 본문
인공지능
인간의 지능으로 할 수 있는 사고 학습, 자기 개발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보 기술의 한 분야
컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것
딥러닝 + 전통적 머신러닝(데이터 사이언스, 데이터 분석)
인공지능의 사례
1.이미지 분류
인간이 이미지를 분류하는 성능은 약 95%. 2015년 'ResNet'이라는 모델이 96%의 성능을 기록하면서 인간의 능력을 뛰어넘기 시작
2.객체 탐지
어떤 이미지 및 비디오 속에 포함돼 있는 물체에 대해 해당 물체가 어떤 물체인지 분류하는 문제, 물체의 위치를 찾아내는 문제
물체의 위치정보(x,y,w,h)를 bounding box로 표현하여 자율주행 자동차, CCTV 등과 같은 카메라 기술ㅇ르 바탕으로 개발되고 있는 제품 및서비스에 도입
3.텍스트
-기계번역(Machine Translation)
-문장 분류(Sentence Classification)
-질의 응답 시스템(Question & Answer System)
-개체명 인식(Named Entity Recognition, NER)
이미지 영역에서는 딥러닝 모델이 인간보다 좋은 성능을 보이는 반면, 텍스트분야에서는 인간의 성능을 따라잡가 어려웠다. 텍스트는 이미지에 비해 배경 지식이 요구되었으며, 순환신경망 (Recurrent Neural Network, RNN)계열의 모델의 한계 역시 해결해야 할 문제 중 하나였다.
하지만 <Attention Is All You Need> 논문의 'Transformer Module' 연구를 시작으로 인간의 성능을 넘어서는 'Language Model'이 개발되기 시작했다.
4.알파고
구글의 딥마인드 사가 개발한 인공지능 바둑기사. 기본원리는 강화학습으로, 현재 상태에서 어떤 행동을 취해야 먼 미래에 보상이 최대가 될 것인지를 학습하는 알고리즘이다.
알파고의 등장을 계기로 강화학습과 딥러닝을 결합한 심층 강화학습(Deep Reinforcement Learning)의 연구가 활발히 진행되기 시작했습니다.
5.Generative Adversarial Networks(GAN)
GAN = 생성모델. 데이터를 '분류'나 '예측'하는 걸 넘어 데이터를 직접 '생성'해내는 모델을 제안
input이 Random Noise, output이 임의의 이미지.
최근에 연구되고 있는 GAN의 성능은 이미 인간의 눈으로 구분하지 못할 정도의 고품질 이미지 or 텍스트를 생성한다.
6.Style Transfer
딥러닝의 발전으로 낮 풍경의 사진을 밤풍경의 사진으로 바꾸거나, 여름풍경을 겨울 풍경으로 바꾸는 게 가능해졌다.
굳이 포토샾을 사용할 필요 없이, GAN을 Style Transfer에 적용하기 시작.(CycleGAN)
7.Deepfake
Deep + fake기술. GAN의 등장으로 이미지 Task, 합성 관련 Task가 한 단계 더 발전되었다.
하지만 사기 등과 같은 다양한 범죄에 활용될 우려가 있어, 인공지능 기술이 인간의 삶에 악영향을 끼칠 수 있다는 점을 염려할 필요가 있다.
딥러닝 모델 설계 : 텐서플로 vs 파이토치
-텐서플로(tensorflow) : 구글이 제작, 파이토치보다 먼저 출시되어 많은 사람이 이용
코드가 직관적이지 않고, 디버깅이 어렵다.
-파이토치(pytorch) : 페이스북이 제작, 코드가 직관적이며 코드 커스텀이 쉽다.
머신러닝의 정의
머신러닝 : 행과 열이 존재하는 행렬(정형 데이터)을 이용해 무언가를 예측 또는 분류하고 싶을 때 사용
딥러닝 : 이미지 또는 텍스트와 같은 정형화 돼어있지 않은 (비정형 데이터) 데이터를 사용할 때
머신러닝은 인공지능 안에 포함되는 개념!
머신러닝의 종류
1.모델 학습
학습(learning)을 하려면 가이드 또는 정답이 필요하다.
머신러닝 모델의 학습 목표는 데이터(input)에 대한 모델의 결과(output)가 정답(label)에 가깝게 나오도록 학습시키는 것이다.
1.데이터를 모델에 넣고 결과를 낸다.
2.결과를 정답과 비교해 다른 만큼 모델을 변경한다.
3.특정 조건이 만족할 때까지 1,2를 반복한다.
2.손실함수(Loss Function) = 비용함수(Cost Function)
모델의 결괏값이 실제 정답과 어떤 차이가 있는지 수치화 할 때, 이 차이를 함수화 한 것.
모델의 선택(결과)에 대해 얼마나 손실이 일어났는지를 정의하는 함수. 이 의미에 맞게 모델을 손실함수의 값을 줄이는 방향으로 학습
ex) Mean Squared Error(MSE)
머신러닝의 구분
1.지도학습
지도한다(supervise). 데이터가 주어졌을 때 무엇(x)을 이용해 무엇(y)을 예측하고 싶을 때 사용
지문과 정답을 제공하고 학습시키는 과정
머신러닝 모델 : y = f(x)
x : 독립변수(independent variable), feature >>> x 를 선택하는 것: feature selection, variable selection
y : 종속변수(dependent variable), 반응변수(response variable), 타깃변수(target variable)
1-1 회귀문제(Regression)
y가 실수형 값을 가질 때 풀어야 하는 문제 >> 이때 f : 회귀 모델(Regression model)
1-2 분류문제(Classification)
y가 명목형 변수일 때, 특정 Class를 가질 때 풀어야 하는 문제 >> 이 때 f : 분류 모델(Classification model)
2.비지도학습
지도학습의 반대 개념. 데이터는 제공하지만 명확한 정답은 제공하지 않는 학습방법
독립변수 만으로 새로운 Feature를 찾아낸다거나 군집화 하는 등 데이터 내에서 새로운 패턴을 찾아내는 것에 초점을 맞춘다.
군집화(Clusterring), 차원 축소법(Dimension Reduction)
3.강화학습
수많은 시뮬레이션을 통해 컴퓨터가 현재 상태에서 어떤 행동을 취해야 먼 미래의 보상을 최대로 할 것인지를 학습하는 알고리즘.
강화학습을 하려면 현재 상태(state), 행동(action), 보상(reward), 다음상태(next state)가 있어야 한다.
기존 머신러닝처럼 데이터의 행이 각각 독립적으로 구성돼어 있는 것이 아니라 일련의 에피소드가 있어야 한다.
>> 시뮬레이션된 연속적인 데이터의 값이 존재해야 하는 것.
지도학습 모델의 종류
1. 선형 회귀 모델(Linear Regressin Model)
직선의 방정식과 같이 모델을 만들 수 있으므로 독립 변수가 종속 변수에 대해 어떤 형태로 영향을 끼치는지 알 수 있다.
-단순 선형 회귀 모델(Simple Linear Regression Model) : 독립 변수 하나만으로 종속 변수를 예측하는 모델
직선의 기울기를 예측 값과 실제 값의 차이의 제곱합이 줄어드는 방향으로 구한다.
-다중 선형 회귀 모델(Multi Linear Regression Model) : 변수가 여러개일 때 적합시키는 회귀모델
2. 회귀 계수 축소 모델(Shrinkage Regression Model)
변수가 많을 수록 학습 데이터에 대한 성능은 높아지고, 학습하지 않은 데이터에 대한 성능은 낮아짐 + 변수의 해석력 또한 낮아짐
MSE를 최소화 시키는 것 + 회귀계수 자체도 축소시키도록 Loss를 구성
Lasso : 회귀계수가 완전히 0이 되도록 축소시킬 수 있다. 변수를 선택할 수 잇다.
Ridge : 회귀계수가 0으로 가까워지긴 하지만 완전히 0이 되지 않는다. Lasso보다 성능이 우위에 있다.
ElasticNet : Lasso와 Ridge의 중간 모델
3. 의사 결정 나무(Decision Tree)
종속 변수가 독립 변수의 어떤 특정 조건에 따라 잘 나뉠 수 있는지를 설명한 모델
높은 설명력 but Prediction의 성능은 부족하다.
4.k-NN(k - Nearest Neighbor)
가장 가까운 k개의 데이터를 이용해 해당 데이터의 출력 값을 예측하는 직관적인 모델
k : 사용자가 사전에 지정해야 하는 파라미터
5.신경망(Neural Network)
입력(input)층, 은닉(hidden)층, 출력(output)층으로 구성
loss가 최소화가 되는 지점을 찾기 위해 각 층을 연결하는 노드의 가중값을 업데이트 하면서 학습
*신경망이 오랫동안 빛을 발휘하지 못한 이유?
과적합(overfitting) & 학습시간이 오래 걸림
신경망은 Weight를 업데이트 하며, 학습 데이터 내에서 정확도가 100%에 이르는 모델을 구축할 수 있다.
하지만 Class를 구분 짓는 경계(Decision Boundary)는 좋지 않게 형성
따라서 학습에 사용된 데이터에만 완벽히 적합되는 현상 발생 >> overfitting
6.SVM(Support Vector Machine)
신경망의 학습 성향에서 발생하는 과적합 문제에 대한 해결책을 제시한 모델
직선을 그었을 때, Class 간의 거리가 각각 비슷하도록, 직선을 가운데로 잘 긋도록 하는 학습방법을 지님.
학습 과정 내에서 과적합을 어느정도 방지할 수 있는 알고리즘
변수나 데이터 수가 많아질 수록 학습하는 시간이 매우 오래 걸린다.
7.Ensemble Learning
다양한 모델을 만들어 우리가 예측하고자 하는 모델에 대한 다양한 의견을 수렴해 투표를 바탕으로 최종적인 예측값을 만들고자 하는 것.
Bagging = 데이터를 재구성해 모델을 만듦
RandomForest = 데이터와 변수를 랜덤으로 추출해 모델을 만듦
Stacking = 여러 모델의 예측값을 다시 독립변수로 활용
Boosting = 잘 맞추지 못하는 데이터를 좀 더 집중적으로 학습시킴
Gradient Boosting = 예측값과 실제값의 차이(residual)를 점차 줄여 나가면서 학습
'AI > Pytorch' 카테고리의 다른 글
pytorch chapter3 (0) | 2021.11.22 |
---|---|
pytorch chapter2-2인공신경망 (0) | 2021.11.20 |
chapter2 pytorch2. Ai Background-2 (0) | 2021.11.20 |
chapter1 pytorch 기초 (0) | 2021.11.11 |