1.1 인공지능, 머신러닝과 딥러닝
인공지능 : 인간의 지능을 모방, 사람이 하는 일을 컴퓨터가 할 수 있도록 하는 기술
인공지능 구현 방법 ① 머신러닝 ② 딥러닝 //인공지능, 머신러닝, 딥러닝의 관계 ; 인공지능 > 머신러닝 > 딥러닝
머신러닝과 딥러닝
머신 러닝 | 딥러닝 | |
공통점 | 학습모델을 제공하여 데이터를 분류 | |
차이점 | 데이터의 특징을 스스로 추출하지 못하므로 주어진 데이터를 인간이 먼저 처리하여 컴퓨터가 인식할 수 있도록 준비해야 함 |
인간이 하던 작업을 생략 대량의 데이터를 신경망에 적용 → 컴퓨터가 스스로 분석한 후 답을 찾음 |
동작 원리 | 입력 데이터에 알고리즘을 적용하여 예측 수행 | 정보를 전달하는 신경망을 사용해 데이터의 특징 및 관계를 해석 |
재사용 | 동일 유형의 데이터 분석을 위한 재사용은 불가능 | 구현된 알고리즘은 동일 유형의 데이터 분석에 재사용됨 |
훈련 시간 | 단시간 | 장시간 |
결과 | 점수 또는 분류 등의 숫자 값 | 점수, 텍스트, 소리 등 어떤 것이든 가능 |
1.2 머신 러닝이란
1.2.1 머신러닝 학습 과정
[머신러닝 단계]
① 학습 단계 : 데이터에 머신 러닝 알고리즘을 적용하여 학습시킴 //레이블 : 지도 학습에서 정답을 의미
② 예측 단계 : 학습 단계에서 생성된 모형에 새로운 데이터를 적용하여 결과를 예측
✔ 특성 추출 : 데이터별로 어떤 특징을 가지고 있는지 찾아내고 그걸 토대로 데이터를 벡터로 변환하는 작업
(컴퓨터가 스스로 학습(입력받은 데이터를 분석하여 일정한 패턴이나 규칙을 찾음)하려면 사람이 인지하는 데이터를 컴퓨터가 인지할 수 있는 데이터로 변환해줘야 함)
[머신 러닝의 주요 구성 요소]
- 데이터 : 머신 러닝이 학습 모델을 만드는 데 사용하는 것
- 좋은 데이터 : 실제 데이터의 특징이 잘 반영되고 편향되지 않음
- 학습에 필요한 데이터 수집 완료 → '훈련 데이터셋'과 '검증 데이터셋' 용도로 분리해서 사용
- 모델 : 머신 러닝의 학습 단계에서 얻은 최종 결과물, 가설
예) "입력 데이터의 패턴은 A와 같다" ← 머신러닝에서의 모델
- 모델의 학습 절차
① 모델(가설) 선택
② 모델 학습 및 평가
③ 평가를 바탕으로 모델 업데이트 //반복하며 주어진 문제를 가장 잘 풀 수 있는 모델을 찾음
1.2.2 머신 러닝 학습 알고리즘
[머신 러닝의 학습 알고리즘 종류]
① 지도학습 : 정답이 무엇인지 컴퓨터에 알려주고 학습시키는 방법
- 유형 : 분류, 회귀
② 비지도 학습 : 정답을 알려주지 않고, 특징이 비슷한 데이터를 클러스터링(범주화)하여 예측하는 학습방법
- 유형 : 군집, 차원 축소
③ 강화 학습 : 자신의 행동에 대한 보상을 받으며 학습을 진행. 보상이 커지는 행동은 자주, 줄어드는 행동은 덜 하도록 하여 진행
예) 게임 - 쿠키런 ; 에이전트: 쿠키 / 환경: 게임 배경 / 에이전트는 변화하는 환경에 따라 다른 행동을 하고 이에 따른 보상을 얻음
1.3 딥러닝이란
신경망 이론을 기반으로 고안된 머신 러닝 방법의 일종. 컴퓨터에 뉴런과 시냅스 개념을 적용
1.3.1 딥러닝 학습 과정
① 데이터 준비
✔데이터 구하는 방법: https://www.tensorflow.org/ 나 https://keras.io/에서 제공하는 데이터셋, https://www.kaggle.com/같은 곳에 공개된 데이터 사용
② 모델(모형) 정의 : 신경망 생성
- 은닉층 개수가 많을 수록 성능은 좋아지지만 과적합이 발생할 확률이 높음(반비례 관계)
//과적합 : 훈련 데이터를 과하게 학습시켜, 훈련 데이터에서는 오차가 감소하지만 새로운 데이터에서는 오차가 커짐
③ 모델(모형) 컴파일 : 활성화 함수, 손실 함수, 옵티마이저를 선택
- 활성화 함수 : 입력 신호가 일정 기준 이상이면 출력 신호로 변환하는 함수
- 손실 함수 : 모델의 출력 값과 사용자가 원하는 출력 값(레이블)의 차이, 즉 오차를 구하는 함수
- 옵티마이저 : 손실 함수를 기반으로 네트워크 업데이트 방법을 결정
④ 모델(모형) 훈련 : 한 번에 처리할 데이터 양을 지정
- 처리해야 할 데이터 양↑ ∝학습속도↓, 메모리 부족
→ 에포크 선택이 중요 //에포크 : 전체 훈련 데이터셋에서 일정한 묶음으로 나누어 처리할 수 있는 배치(batch)와 훈련의 횟수
✔훈련과정에서 값의 변화를 시각적으로 표현하여 눈으로 확인하면서 '파라미터'와 '하이퍼파라미터'에 대한 최적의 값을 찾을 수 있어야함
//파라미터 : 모델 내부에서 결정되는 변수 //하이퍼파라미터 : 튜닝 또는 최적화해야 하는 변수로 사람들이 선험적 지식으로 설정해야 하는 변수
예) '훈련 데이터셋 1000개에 대한 배치 크기가 20'
= 샘플(데이터) 단위 20개(1 배치)마다 모델 가중치를 한 번씩 업데이트시킴. 즉, 총 50번의 가중치가 업데이트됨
이때 에포크가 10이고 배치크기가 20이면, 가중치를 50번 업데이트하는 걸 10번 반복한다는 의미
→ 각 데이터 샘플이 총 10번씩 사용되는 것이므로, 결과적으로 가중치가 총 500번 업데이트됨
//가중치 : 뉴런에서 뉴런으로 전달될 때 입력값에 각기 다르게 곱해지는 수치
⑤ 모델(모형) 평가 : 검증된 데이터셋을 생성한 모델(모형)에 적용하여 실제로 예측을 진행함
[딥러닝 학습 과정의 핵심 구성 요소]
- 신경망 : 심층 신경망엔 데이터셋의 어떤 특성들이 중요한지 스스로에게 가르쳐 줄 수 있는 기능이 있음
- 역전파 : 가중치 값을 업데이트 하기 위한 요소
+ 역전파 계산과정에서 사용되는 미분이 성능에 영향을 미치는 주요한 요소
1.3.2 딥러닝 학습 알고리즘
[머신 러닝의 학습 알고리즘 종류]
① 지도학습 : 정답이 무엇인지 컴퓨터에 알려주고 학습시키는 방법
- 이미지 분류
- 합성곱 신경망(Convolutional Neural Network, CNN)
: 이미지 분류, 인식, 분할(영상에서 사물이나 배경 등 객체 간 영역을 픽셀 단위로 구분)
- 시계열 데이터 분류
- 순환 신경망(Recurrent Neural Network, RNN)
- LSTM(Long Short-Term Memory)
: 망각 게이트, 입력 게이트, 출력 게이트 도입 → RNN의 역전파 과정에서의 기울기 소멸 문제 해결
//망각: 과거 정보를 잊기위한 게이트 | 입력: 현재 정보를 기억하기 위한 게이트 | 출력: 최종 결과를 위한 게이트
② 비지도 학습 : 정답을 알려주지 않고, 특징이 비슷한 데이터를 클러스터링(범주화)하여 예측하는 학습방법
- 워드 임베딩 : 자연어(사람의 언어) 변환할때 이용, 단어를 벡터로 표현 //벡터 : 입력 데이터를 표시하는 방법
- 군집 : 아무런 정보가 없는 상태에서 데이터를 분류하는 방법
③ 전이 학습 : 사전에 학습이 완료된 모델을 가지고 우리가 원하는 학습에 미세 조정 기법을 이용해 학습시키는 방법
- 사전 학습 모델 : 풀고자 하는 문제와 비슷, 많은 데이터로 이미 학습이 되어있는 모델
④ 강화 학습 : 자신의 행동에 대한 보상을 받으며 학습을 진행
'Etc > Deep Learning' 카테고리의 다른 글
3장(2) 실습 - 결정트리(타이타닉 승객 생존 여부 예측) | 대괄호 인덱싱 | map() | dropna(), drop() | DecisionTreeClassifier() | Confusion Matrix (0) | 2021.07.20 |
---|---|
3장 머신러닝 핵심 알고리즘(2) - 지도학습(결정 트리) (0) | 2021.07.20 |
3장(1) 실습 - Pandas 기초 | Tensorflow 기초 | KNN, SVM 구현 예제 설명 (0) | 2021.07.19 |
3장 머신러닝 핵심 알고리즘(1) - 지도학습(K-최근접 이웃, 서포트 벡터 머신) (0) | 2021.07.19 |
2장 텐서플로 기초 (0) | 2021.07.14 |