본문 바로가기
끝이없는 공부/AI프로그래밍

[AI프로그래밍] 머신 러닝과 딥러닝#3 - 딥러닝이란

by 블루데이제이 2024. 4. 20.
728x90
반응형

딥러닝이란

딥러닝은 인간의 신경망 원리르 모방한 심층 신경망 이론을 기반으로 고아된 머신 러닝의 일종. 즉, 딥러닝이 머신 러닝과 다른 큰 차이점은 인간의 뇌를 기초로 하여 설계했다는 것. 인간의 뇌가 엄청난 수의 뉴런(neuron)과 시냅스(synapse)로 구성되어 있는 것에 착안하여 컴퓨터에 뉴런과 시냅스 개념을 적용.

각각의 뉴런은 복잡하게 연결된 수많은 뉴런을 병렬 연산하여 기존에 컴퓨터가 수행하지 못했던 음성·영상 인식 등의 처리를 가능하게 함.

이미지 출처 :딥러닝 텐서플로 교과서 서지영 지음

  • 수상돌기 : 주변이나 다른 뉴런에서 자극을 받아 들이고, 이 자극들을 전기적 신호형태로 세포체와 축색돌기로 보내는 역할
  • 시냅스 : 신경 세포들이 이루는 연결 부위로, 한 뉴런의 축색돌기와 다음 뉴런의 수상돌기가 만나는 부분
  • 축삭돌기 : 다른 뉴런(수상돌기)에 신호를 전달하는 기능을 하는 뉴런의 한 부분. 뉴런에서 뻗어 있는 돌기 중 가장 길며 단 한개만 있음
  • 축삭말단 : 전달된 전기 신호를 받아 신경 전달 물질을 시냅스 틈색로 분비

 

딥러닝 학습 과정

딥러닝의 학습 과정도 러닝 머신과 크게 다르지 않음. 물론 자세히 다룬다면 데이터를 구하고 전처리하는 방법부터 튜닝하는 방법까지 포함되겠지만 세세한 부분까지 작성하고 다루기에는 딥러닝 분야가 너무 넓음. 데이터 준비부터 모델(모형)을 정의하고 사용하는 부분까지 진행

이미지 출처 :딥러닝 텐서플로 교과서 서지영 지음

 

  • 데이터 준비 : 초보자가 데이터를 쉽게 구할 수 있는 방법은 두 가지. 첫 째, 텐서플로(https://www.tensorflow.org)나 케라스(https://keras.io)에서 제공하는 데이터 셋을 사용하는 것. 제공되는 데이터들은 이미 전처리를 했기 때문에 바로 사용할 수 있으며, 수많은 예제 코드를 쉽게 구할 수 있는 장점이 있음. 둘 째, 캐글(Kaggle) 같은 곳에 공개된 데이터를 사용하는 것. 물론 국내의 공개 데이터들도 사용할 수 있으나 상당히 많은 전처리를 해야 하기에 가능하면 캐글 같은 플랫폼에 제공된 데이터를 활용하길 권장
  • 모델(모형) 정의 : 모델(모형) 정의 단계에서 신경망을 생성. 일반적으로 은닉층 개수가 많을수록 성능이 좋아지지만 과적합이 발생할 확률이 높음. 즉, 은닉층 개수에 따른 성능과 과적합은 서로 상충 관계에 있다고 할 수 있음. 모델 정의 단계에서 신경망을 제대로 생성하는 것이 중요.
  • 모델(모형) 컴파일 : 컴파일 단계에서 활성화 함수, 손실 함수, 옵티마이저를 선택. 이때 데이터 형태에 따라 다양한 옵션이 가능함. 훈련 데이터셋 형태가 연속형이라면 평균 제곱 오차(Mean Squared Error, MSE)를 사용할 수 있으며, 이진 분류(binary classification)라면 크로스 엔트로피(cross-entropy)를 선택. 또한, 과적합을 피할 수 있는 활성화 함수 및 옵티마이저 선택이 중요.
  • 모델(모형) 훈련 : 훈련 단계에서는 한 번에 처리할 데이터양을 지정함. 이때 한 번에 처리해야 할 데이터양이 많아지면 학습 속도가 느려지고 메모리 부족 문제를 야기할 수 있기 때문에 적당한 데이터양을 선택하는 것이 중요함. 전체 훈련 데이터셋에서 일정한 묶음으로 나누어 처리할 수 있는 배치와 훈련의 횟수인 에포크 선택이 중요함. 이때 훈련 과정에서 값의 변화를 시각적으로 표현하여 눈으로 확인하면서 파라미터와 하이퍼파라미터에 대한 최적의 값을 찾을 수 있어야 함.

이미지 출처 :딥러닝 텐서플로 교과서 서지영 지음

‘훈련 데이터셋 1000개에 대한 배치 크기가 20’이라면 샘플 단위 20개마다 모델 가중치를 한 번씩 업데이트시킨다는 의미. 즉, 총 50번(=1000/20)의 가중치가 업데이트. 이때 에포크가 10이고 배치 크기가 20이라면, 가중치를 50번 업데이트하는 것을 총 열번 반복한다는 의미. 각 데이터 샘플이 총 열 번씩 사용되는 것이므로, 결과적으로 가중치가 총 500번 업데이트.

 

  • 모델(모형) 예측 : 검증 데이터셋을 생성한 모델(모형)에 적용하여 실제로 예측을 진행해 보는 단계. 이때 예측력이 낮다면 파라미터를 튜닝하거나 신경망 자체를 재설계해야 할 수도 있음.

 

딥러닝 학습 과정에서 중요한 핵심 구성 요소는 신경망과 역전파.

딥러닝은 머신 러닝의 한 분야이기는 하지만, 심층 신경망(deep neural network)을 가지고 있다는 점에서 머신 러닝과 차이가 있음.

심층 신경망에는 데이터셋의 어떤 특성들이 중요한지 스스로에게 가르쳐 줄 수 있는 기능이 있음.

이미지 출처 :딥러닝 텐서플로 교과서 서지영 지음

또한, 가중치 값을 업데이트하기 위한 역전파가 중요함. 역전파 계산 과정에서 사용되는 미분(오차를 각 가중치로 미분)이 성능에 영향을 미치는 주요한 요소라고 할 수 있음.

이미지 출처 :딥러닝 텐서플로 교과서 서지영 지음

텐서플로 같은 라이브러리를 이용하면 역전파 알고리즘을 자동으로 처리해 주기 때문에 딥러닝 알고리즘 구현이 굉장히 간단해짐. 즉, 텐서플로를 이용하면 딥러닝 알고리즘 구현이 간단하고 편리함.

 

 

728x90
반응형