내일배움캠프_QAQC 1기/머신러닝의 이해와 라이브러리 활용

머신러닝 심화_딥러닝

이지응:) 2025. 2. 18. 19:37

강의 자료 : 4. 딥러닝

실습 자료 :

머신러닝 심화_딥러닝.ipynb
0.02MB

 

머신러닝 VS 딥러닝

공통점

  • 데이터로부터 가중치를 학습하여 패턴을 인식하고 결정을 내리는 알고리즘 개발과 관련된 인공지능(AI)의 하위 분야

차이점

  • 머신러닝: 데이터 안의 통계적 관계를 찾아내며 예측이나 부류를 하는 방법
  • 딥러닝: 머신러닝의 한 분야로 신경세포 구조를 모방한 인공 신경망을 사용함.

 

딥러닝 유래

  • 인공 신경망(Artificial Neural Networks) : 인간의 신경세포를 모방하여 만든 망(Networks)
  • 신경세포: 이전 신경세포로 들어오는 자극을 이후 신경세포로 전기신호로 전달하는 기능을 하는 세포
  • 퍼셉트론(Perceptron): 인공 신경망의 가장 작은 단위

 

히든 레이어

  • 인공 신경망의 학습
    • 입력 데이터가 신경망의 각 층을 통과하면서 최종 출력까지 생성되는 과정을 순전파(Propagation)
    • 신경망의 오류를 역방향으로 전파하여 각 층의 가중치를 조절하는 과정을 역전파(Backpropagation)
  • 기울기 소실 문제 등장
    • 문제: 역전파 과정에서 하위 레이어로 갈수록 오차의 기울기가 점점 작아져 가중치가 거의 업데이트 되지 않는 현상
    • 해결: 특정 활성화 함수(ex Relu)를 통해 완화 하게 됨
  • 명칭 정리
    • Input Layer: 주어진 데이터가 벡터(Vector)의 형태로 입력됨
    • Hidden Layer: Input Layer와 Output Layer를 매개하는 레이어로 이를 통해 비선형 문제를 해결할 수 있게 됨
    • Output Layer: 최종적으로 도착하게 되는 Layer
      • Activation function(활성화 함수): 인공신경망의 비선형성을 추가하며 기울기 소실 문제 해결함

 

epoch

  • 전체 데이터가 신경망을 통과하는 한 번의 사이클
    • 1000 epoch: 데이터 전체를 1000번 학습
  • batch: 전체 훈련 데이터 셋을 일정한 크기의 소 그룹으로 나눈 것
  • iteration: 전체 훈련 데이터 셋을 여러 개(=batch)로 나누었을 때 배치가 학습되는 횟수
  • Epoch = batch x iteration

 

딥러닝 실습 - Tensorflow 사용

딥러닝 패키지

  • Tensorflow: 구글이 오픈소스로 공개한 기계학습 라이브러리로 2.0 버전부터는 딥러닝 라이브러리를 구축하는 Keras 패키지를 통합하게 되었다.
  • Pytorch: 메타(전 페이스북)의에 개발되었다. 토치(torch)기반의 딥러닝 라이브러리

 

Tensorflow 패키지 - tf.keras.Model  |  TensorFlow v2.16.1

tensorflow.keras.model.Sequential

  • model.add: 모델에 대한 새로운 층을 추가함
    • unit
  • model.compile: 모델 구조를 컴파일하며 학습 과정을 설정
    • optimizer : 최적화 방법, Gradient Descent 종류 선택
    • loss : 학습 중 손실 함수 설정
      • 회귀: mean_squared_error(회귀)
      • 분류: categorical_crossentropy
    • metrics : 평가척도
      • mse: Mean Squared Error
      • acc : 정확도
      • f1_score: f1 score
  • model.fit: 모델을 훈련 시키는 과정
    • epochs: 전체 훈련 데이터 셋에 대해 학습을 반복하는 횟수
  • model.summary(): 모델의 구조를 요약하여 출력

tensorflow.keras.model.Dense: 완전 연결된 층

  • unit: 층에 있는 유닛의 수. 출력에 대한 차원 개수
  • input_shape:1번째 층에만 필요하면 입력데이터의 형태를 지정

model.evaluate: 테스트 데이터를 사용하여 평가

model.predict: 새로운 데이터에 대해서 예측 수행

 

 

딥러닝 활용 예시

자연어 처리 (Natural Language Processing)

  • 인간의 언어를 데이터 화 하는 것
  • Ex) 단어의 빈도 수 기반 데이터 화(Bag of Words)

 

최신 자연어 처리 모델 - LLM

종류

  • GPT-4(OpenAI), PaLM2(Google), LlaMA(Meta)

 

머신러닝 최종 정리

  1. 회귀분석
    • 가장 설명을 잘하는 직선을 그리는 법 - 선형회귀
    • 실제 값과 예측 값의 오차를 계산하라 - Mean Squared Error
  2. 분류분석
    • 특정 범주에 대한 확률 예측하기 - 로지스틱회귀
    • 맞춘 것에 대한 지표: 정확도, f1_score
  3. 데이터 분석 프로세스
    • 데이터 수집 → 전처리 → 모델링 → 평가
  4. 회귀, 분류 모델링 심화
    • 의사결정을 기반으로 한 모델 - 의사결정나무
    • 나무를 여러 개 만들어서 다수결 원칙을 사용하자 - 랜덤포레스트
    • 유유사종의 원리로 예측하자 - KNN
    • 약한 학습기를 여러 개 합치자 - 부스팅 모델
  5. 비지도학습
    • 만약 Y(정답이 없다면) 특성을 이용해 그룹화 하자 - K-means 군집화
  6. 인공 신경망
    • 사람의 신경세포를 모방한 네트워크 - 인공 신경망