inblog logo
|
actafool

    딥러닝 주요 개념 간략 정리

    Nov 01, 2023
    딥러닝 주요 개념 간략 정리
    Contents
    10.1 인공 신경망10.2 합성곱 신경망(convolutional neural network, CNN)10.3 성능 향상을 위한 딥러닝 알고리즘

    10.1 인공 신경망

    • 인간의 생물학적 신경망과 유사한 구조를 갖는 인공 시스템
    • 사람 뇌의 기본 단위 뉴런 구조에서 영감을 얻음
      • 가지돌기 → 축삭돌기 → 축삭 말단
      • 신호가 특정 값을 넘으면 잘 전달되고, 특정 값 이하면 전달되지 않음
      • 뉴런 = 신호를 입력에서 출력으로 전달하는 역할

    10.1.1 퍼셉트론

    • 뉴런의 원리를 본떠 만든 인공 구조
    • 여러 입력값을 받아 특정 값을 출력함
        1. 입력값(x1,x2,x3)과 가중치(w1,w2,w3)을 곱함
        1. 곱한 값들의 총합을 구함
        1. 총합이 0을 넘으면 1, 넘지 않으면 0을 출력
          1. 3번 단계에서 0 초과 여부에 따라 출력값을 결정하는 역할 = 활성화 함수
            • 활성화 함수는 입력값을 최종적으로 어떤 값으로 변환해 출력할지 결정해줌
    • 퍼셉트론은 입력값, 가중치, 활성화 함수로 이루어진 구조
    • 훈련(또는 학습) : 원하는 출력값을 내보내도록 가중치를 조정해가는 작업
    • 단순 퍼셉트론은 선형 분류 문제만 해결 할 수 있다는 한계점이 있음
      • ⇒ 퍼셉트론을 여러 층으로 쌓아 다층 퍼셉르론을 통해 비선형 분류 문제를 해결 가능
     

    10.1.2 신경망

    • 신경망은 입력층, 은닉층(중간층), 출력층으로 구성

    10.1.3 활성화 함수(activation funcion)

    • 입력값을 어떤 값으로 변환해 출력할지 결정하는 함수
    • 대표적인 활성화 함수로 시그모이드 함수와 ReLU 함수가 있음
      • 시그모이드 함수
        • S자 곡선을 그리는 수학 함수
          • notion image
      • ReLU 함수
        • 입력값이 0보다 크면 입력값을 그대로 출력하고, 0 이하이면 0 을 출력
        • 활성화 함수로 시그모이드보다 대체로 성능이 좋아서 많이 활용됨
          • notion image
      • Leaky ReLU 함수
        • ReLU를 약간 변형한 함수로, 자주 쓰임
        • 입력값이 음수일 때, 약간의 음숫값을 살려둠
          • notion image

    10.1.4 경사 하강법(Gradient Descent)

    • 신경망 훈련의 목표 ⇒ 최적 파라미터(가중치와 편향)을 찾는 것
      • 최적 파라미터 = 손실 함수가 최솟값일 때의 파라미터
        • 손실 함수(loss function)
          • 모델 성능이 얼마나 나쁜지를 측정하는 함수
          • 모델로 예측한 값과 실젯값 차이를 구하는 함수
          • 함수 값이 작을 수록 좋은 모델
          • 대표적으로 평균 제곱 오차(Mean Squared Error, MSE)와 교차 엔트로피(Cross Entropy)가 있음
    • 매 훈련마다 손실값이 줄어드는 방향으로 파라미터를 갱신하여 찾게 됨
    💡
    경사 하강법의 일반적인 절차 1. 현재 위치에서 기울기(경사)를 구함 2. 기울기 아래 방향으로 일정거리(학습률)를 이동함. 3. 손실 함수가 최소가 될 때까지, 즉 기울기가 0이 될 때까지 1~2단계를 반복함
    • 학습률(Learning Rate)
      • 기울기 방향으로 얼만큼 이동할지 결정하는 값
      • 학습률이 가중치를 한 번에 얼마나 갱신할지 결정하는 값
      • 학습률에 따라 훈련 속도가 달라짐
        • 학습률이 너무 크면 훈련 속도는 빠르지만, 최적 가중치를 찾지 못할 수 있음
        • 학습률 이 너무 작으면 훈련 속도가 느려짐
      • 보통 0.1~0.0001 범위의 값을 사용함
    • 미니배치 경하 하강법
      • 데이터를 미니배치 단위로 무작위로 추출해 경사 하강법을 수행
      • 데이터 여러 개를 한 묶음으로 처리하므로 더 효율적
    • 순전파(forward propagation)
      • 입력값이 입력층 → 은닉층 → 출력층 도달하는 계산 과정
      • 각 층을 통과할 떄마다 입력값에 가중치를 곱해 다음 층으로 출력값을 계산
    • 역전파(back propagation)
      • 순전파의 반대 개념
    💡
    신경망 훈련 절차 1. 순전파를 진행하여 입력값으로부터 출력값(타깃 예측값)을 계산함 2. 순전파로 구한 타깃 예측값과 실제 타깃값의 차이 (손실)을 구함 3. 손실값을 줄이는 방향으로 가중치의 기울기를 구함 = 경사하강법 4. 기울기를 바탕으로 가중치를 갱신, 출력층 → 입력층 방향으로 차례로 가중치 갱신 5. 1~4단계 반복
     

    10.2 합성곱 신경망(convolutional neural network, CNN)

    • 컴퓨터 비전 분야에서 주로 쓰이는 신경망
    • 다음과 같이 여러 구조가 모여 구성됨
    notion image

    10.2.1 합성곱 계층(convolutional layer)

    • 합성곱으로 이루어진 신경망 계층
    • 합성곱(convolution)
      • 2차원 데이터의 일정 영역 내 값들을 하나의 값으로 압축하는 연산
      • 전체 영역에서 중요한 특징만 추출하는 효과
      • 합성곱 연산에는 필터가 필요함
    • 필터(filter)
      • 입력 데이터에서 특정한 특성을 필터링하는 역할
      • 특정 특성을 부각시키거나 약화시키는 등의 변화를 줌
      • 요소별, 특징별 특성을 가져오는 역할
    합성곱 연산 과정
    • 서로 대응하는 행과 열에 적힌 숫자끼리 곱한 뒤 모두 더해줌
    notion image
     
    • 특성 맵, 피처 맵(feature map)
      • 합성곱 연산의 결과
      • 중요한 특징만 남아있게 된 결과
      • 필터의 패턴과 일치하는 영역일 수록 숫자가 큼
    • 합성곱 계층에서는 보통 여러 특성을 추출하기 위해 여러 필터를 사용함
      • notion image
     

    10.2.2 패딩과 스트라이드

    • 4X4 크기의 입력 데이터에 3X3 크기의 필터를 적용하면 2X2의 피처맵이 만들어 짐
    • 합성곱 연산은 데이터의 크기를 줄이게 되고, 여러 번 반복하면 더 이상 합성곱 연산을 적용하지 못함
      • 입력 데이터 크기를 좀 더 키우면 해결 가능
        • 패딩(padding)
          • 입력 주변 데이터 주변을 특정 값으로 채워 입력 데이터 크기를 키우는 방법
          • 보통 0으로 채움
    • 스트라이드(stride)
      • 합성곱 연산을 수행할 때 한 번에 이동하는 간격의 크기
      • 스트라이드를 크게 설정하면 패처맵의 크기가 줄어듬

    10.2.3 풀링(pooling)

    • 특성 맵 크기를 줄여 이미지의 요약 정보를 추출하는 기능
    • 합성곱과 다르게 필터가 필요 없음
      • 특정 영역에서 최댓값이나 평균값을 가져와 요약 정보를 구하기 때문
    • 풀링의 목적
      • 특성 맵 크기를 줄여 연산속도를 빠르게 하기 위함
      • 이미지에서 물체의 위치가 바뀌어도 같은 물체로 인식하기 위해
        • 합성곱 연산은 물체 위치가 바뀌면 같은 물체로 인식하지 못함
        • 풀링은 특정 영역의 요약 정보(대푯값)을 가져와서 위치가 약간 변해도 같은 물체로 판단함 = 위치 불변성(location invariance)
    • 대표적으로 최대 풀링과 평균 풀링이 있음
      • 최대 풀링
        • 풀링 영역에서 가장 큰 값을 취하는 방법
        • 특정 영역에서 가장 뚜렷한(밝은) 부분 추출
      • 평균 풀링
        • 풀링 영역의 평균값을 구하는 방법
        • 특정 영역의 평균적인 특징 추출

    10.2.4 전결합(fully-connected)

    • 이전 계층의 모든 노드 각각이 다음 계층의 노드 전부와 연결된 결합
    • 전결합 계층(fully-connected layer) 또는 밀집 계층(dense layer)
      • 전결합으로 구성된 계층
      • CNN에서는 보통 마지막 부분에서 구현함
    • 앞의 합성곱과 풀링 계층이 이미지에서 특징을 뽑아내면 전결합 계층은 이 특성을 활용해 특정한 레이블로 분류하는 역할을 함
    • 평탄화
      • 합성곱 계층과 풀링 계층을 거친 2차원 데이터는 1차원으로 바꾼 뒤 전결합을 적용
    • 평탄화한 1차원 데이터를 최종 출력값과 전결합하지 않고, 전결합 계층을 여러 개 만드는 이유?
      • 분류를 더 효율적으로 하기 위해

    10.2.5 합성곱 신경망 전체 구조

    • 입력 데이터는 배치크기, 가로 픽셀 수, 세로 픽셀수 , 색상(채널 값)로 4차원 데이터를 다루게 됨
     

    10.3 성능 향상을 위한 딥러닝 알고리즘

    10.3.1 드롭아웃(dropout)

    • 과적합을 방지하기 위해 신경망 훈련 과정에서 무작위로 일부 뉴런을 제외하는 기법
    • 매 훈련 이터레이션마다 새롭게 적용
      • 매 훈련마다 서로 다른 신경망을 훈련하는 꼴
      • 여러 모델을 훈련하여 결과를 취합하는 앙상블 학습과 유사
    • 드롭아웃 비율 0.2로 설정하면 전체의 20% 뉴런을 제외하게 됨

    10.3.2 배치 정규화(batch normalization)

    • 과적합 방지와 훈련 속도 향상을 위한 기법
    • 내부 공변량 변화(internal covariate shift)를 해결하기 위한 기법
      • 신경망 계층마다 입력 데이터 분포가 다른 현상
    • 데이터가 정규분포(평균0, 분산1)을 따르도록 분포를 변환하는 작업

    10.3.3 옵티마이저(optimizer)

    • 신경망의 최적 가중치를 찾아주는 알고리즘
    • 10.1.4의 경사 하강법(SGD)이 대표적인 예
    • 모멘텀(Momentum)
      • SGD에 물리학의 관성 개념을 추가
      • 이전 단계의 진행 방향을 기억하여 일정 비율로 현 단계에 반영
        • 지그재그 폭이 줄어드는 효과 → 더 빠르게 최적 파라미터에 수렴
    • Adagrad
      • 최적 파라미터에 도달할수록 학습률을 낮추도록 한 옵티마이저
      • 적응적 학습률(adaptive learning rate)
        • 최적점에서 멀 때는 학습률을 크게 잡아 빠르게 수렴
        • 최적점에서 가까울 때는 학습률을 낮춰 최적점을 지나치지 않도록 함
    • RMSProp
      • Adagrad의 단점을 보완한 방법
        • 훈련이 진행될 수록 학습률이 낮아져 0에 가까워져, 가중치 갱신이 되지 않음
      • 적응적 학습률을 활용하지만, 최근 기울기만 고려해 학습률을 낮추는 방법
      • 훈련을 오래 지속해도 학습률이 0에 수렴하지 않음
    • Adam
      • 딥러닝 모델을 설계할 때 가장 많이 사용하는 옵티마이저
      • Momentum과 RMSProp의 장점을 결합한 방법
        • 관성을 이용하며, 적응적 학습률을 적용함

    10.3.4 전이 학습(transfer learning)

    • 한 영역에서 사전 훈련된 모델(pretrained model)에 약간의 추가 학습을 더해 유사한 다른 영역에서도 활용하는 기법
    • 처음 훈련하는 것보다 적은 데이터로 훨씬 빠르게 높은 성능치에 도달할 수 있음
    • 전이 학습의 종류
      • 신경망 전체를 다시 훈련하는 파인튜닝(fine tuning)
      • 일부 계층만 다시 훈련하는 방법
     
    Share article
    Contents
    10.1 인공 신경망10.2 합성곱 신경망(convolutional neural network, CNN)10.3 성능 향상을 위한 딥러닝 알고리즘

    actafool

    RSS·Powered by Inblog