Deep Learning/Pytorch

[딥러닝 파이토치 교과서] 1장. 머신러닝과 딥러닝

hyeonzzz 2024. 3. 14. 01:14

1.1 인공지능, 머신러닝과 딥러닝

인공지능

인공지능 : 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터가 할 수 있도록 하는 기술

 

인공지능 > 머신러닝 > 딥러닝

 

머신러닝과 딥러닝의 차이

 

1.2 머신러닝이란

머신러닝

머신러닝 : 컴퓨터 스스로 대용량 데이터에서 지식이나 패턴을 찾아 학습하고 예측을 수행하는 것

 

머신러닝 학습 과정

1. 학습 단계 : 훈련 데이터를 머신러닝 알고리즘에 적용하여 학습시킨다. 학습 결과로 모형이 생성된다

2. 예측 단계 : 생성된 모형에 새로운 데이터를 적용하여 결과를 예측한다

 

* 특성 추출 : 데이터별로 어떤 특징을 가지고 있는지 찾아내고, 그것을 토대로 데이터를 벡터로 변환하는 작업

 

머신러닝의 주요 구성 요소

데이터 : 머신러닝이 학습 모델을 만드는데 사용하는 것

  • 데이터의 특징이 잘 반영되고 편향되지 않는 데이터를 확보하는 것이 중요
  • 훈련, 검증, 테스트 데이터셋으로 분리

모델 : 학습 단계에서 얻은 최종 결과물

모델의 학습 절차는 다음과 같다

  • 모델 선택
  • 모델 학습 및 평가
  • 평가를 바탕으로 모델 업데이트

 

검증 데이터셋을 사용하는 이유

 

  • 모델 성능을 평가하기 위해서
  • 테스트 데이터셋에 대한 성능을 가늠해 본다
  • 모델 성능을 높이는 데 도움을 준다 -> 검증 데이터셋의 정확도가 낮다면 정규화를 하거나 epoch을 줄여 과적합을 막는다

 

머신러닝 학습 알고리즘

지도 학습

: 정답이 무엇인지 컴퓨터에 알려 주고 학습시키는 방법

 

비지도 학습

: 정답을 알려주지 않고 특징이 비슷한 데이터를 클러스터링하여 예측하는 방법

 

강화 학습

: 자신의 행동에 대한 보상을 받으며 학습을 진행한다

보상이 커지는 행동은 자주 하도록 하고, 줄어드는 행동은 덜 하도록 하여 학습을 진행한다

 

자주 사용되는 알고리즘

 

1.3 딥러닝이란

딥러닝

딥러닝 : 심층 신경망 이론을 기반으로 병렬 연산하여 기존에 컴퓨터가 수행하지 못했던 음성, 영상 인식 등의 처리를 가능하게 한다

 

딥러닝 학습 과정

1. 데이터 준비

  • 파이토치나 케라스에서 제공하는 데이터셋 사용
  • 캐글에서 공개된 데이터 사용

2. 모델 정의

  • 신경망을 생성
  • 은닉층 개수에 따른 성능과 과적합은 서로 상충 관계에 있다

3. 모델 컴파일

  • 활성화 함수, 손실 함수, 옵티마이저를 선택
  • 연속형 - MSE
  • 이진 분류 - Cross Entropy
손실 함수
1. MSE (Mean Squared Error)
- 주로 회귀 문제에서 사용
2. Cross Entropy (교차 엔트로피)
- 주로 분류 문제에서 사용
- 이진 분류의 경우
- 다중 분류의 경우

 

4. 모델 훈련

  • 배치 (한 번에 처리할 데이터양)와 에포크 선택

  • 훈련 데이터셋 1000개, 배치사이즈 20 -> 20개마다 모델 가중치를 업데이트시킨다. 총 50번(=1000/20)의 가중치가 업데이트 된다
  • 각 배치마다 가중치가 업데이트되며, 업데이트된 가중치는 다음 배치에서 사용된다.
예시
초기 가중치: 𝜃0
​배치1: 𝑥1에 대해 𝜃0​로 그라디언트를 계산하고 가중치를 𝜃1​로 업데이트.
배치2: 𝑥2에 대해 𝜃1로 그라디언트를 계산하고 가중치를 𝜃2​로 업데이트.
배치3: 𝑥3에 대해 𝜃2로 그라디언트를 계산하고 가중치를 𝜃3로 업데이트....
  • 성능이 좋다 = 정확도가 높다 or 훈련 속도가 빠르다

5. 모델 예측

  • 생성한 모델에 적용하여 실제로 예측을 진행해 보는 단계
  • 예측력이 낮다면 -> 파라미터 튜닝, 신경망 재설계

 

딥러닝 학습 알고리즘

지도 학습

 

1. 합성곱 신경망 : 이미지 또는 비디오상의 객체를 식별

- 이미지 분류 : 이미지 데이터를 유사한 것끼리 분류

- 이미지 인식 : 사진 속 사물의 종류를 인식 (직병 식별, 산업 검사, 로봇 비전)

- 이미지 분할 : 영상에서 사물이나 배경 등 객체 간 영역을 픽셀 단위로 구분 (X-ray, CT, MRI)

 

2. 순환 신경망 : 시계열 데이터를 분류

LSTM : 역전파 과정에서 기울기 소실을 개선하고자 게이트 세개 추가 (망각 게이트, 입력 게이트, 출력 게이트)

 

비지도 학습

 

1. 워드 임베딩 : 단어를 컴퓨터가 이해할 수 있도록 벡터로 표현

- Word2Vec

- GloVe

 

2. 군집 : 아무런 정보가 없는 상태에서 데이터를 분류하는 방법

- 머신러닝 단독으로 군집 알고리즘을 적용하기보다 딥러닝과 함께 사용하면 좋다

 

전이 학습

 

전이 학습 : pre-trained model을 가지고 우리가 원하는 학습에 미세 조정 기법을 이용하여 학습시키는 방법