Etc/Deep Learning

1장 머신러닝과 딥러닝

z.zzz 2021. 7. 12. 21:29

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의 역전파 과정에서의 기울기 소멸 문제 해결

                //망각: 과거 정보를 잊기위한 게이트 | 입력: 현재 정보를 기억하기 위한 게이트 | 출력: 최종 결과를 위한 게이트            

 

② 비지도 학습 : 정답을 알려주지 않고, 특징이 비슷한 데이터를 클러스터링(범주화)하여 예측하는 학습방법

      - 워드 임베딩 : 자연어(사람의 언어) 변환할때 이용, 단어를 벡터로 표현           //벡터 : 입력 데이터를 표시하는 방법

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

 

전이 학습 : 사전에 학습이 완료된 모델을 가지고 우리가 원하는 학습에 미세 조정 기법을 이용해 학습시키는 방법

      - 사전 학습 모델 : 풀고자 하는 문제와 비슷, 많은 데이터로 이미 학습이 되어있는 모델

 

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