6주차. 인공신경망

Rampaging Turtle·2025년 2월 21일
0

7-1. 인공신경망

  1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집충에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 갯수는 몇 개인가요?

    • 기본적인 인공신경망의 알고리즘은 SGD를 사용하는 로지스틱 회귀와 같습니다.
    • 각 출력층은 {z1 = w1 x1 + w2 x2 ... w100 * x100 + b } 의 방정식을 가집니다.
    • 따라서 입력특성(=100) X 뉴런갯수(=10) + 각 뉴런당 절편갯수 합(=10) 으로 1010개 입니다.
  2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?

    • 로지스틱 회귀에서 선형방정식의 해(=z)가 확률값을 가지기 위해서는 0~1 사이의 값이 되어야 합니다.
    • 시그모이드 함수는 z가 무한하게 큰 음수일 경우 0에 가까워지고, 양수일 경우 1에 가까워지게 합니다.
    • 따라서 이진 분류 모델의 활성화 함수는 sigmoid 함수를 지정해야 합니다.
  3. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?
    - 손실 함수란 경사하강법에서 예측값과 실제값간의 간극을 수치화하는 함수입니다.
    - 케라스 모델에서 손실함수를 지정하는 구문은 아래와 같습니다.

    - 따라서 정답은 compile() 입니다.

  4. 정수 레이블을 타킷으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?

    • sparse_categorical_crossentropy : 정수형 라벨을 가진 다중 클래스 분류에서 사용 (따라서 정답)
    • categorical_crossentropy : 원-핫 인코딩된 다중 클래스 분류에서 사용
    • binary_crossentropy : 두 개의 클래스(0과 1) 중 하나를 예측할 때 사용
    • mean_square_error : 회귀 예측시 사용

7-2. 심층 신경망

  1. 모델의 add() 메서드 사용법
  1. 크기가 300 X 300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?

    • Flatten은 2차원 배열의 샘플을 1차원 배열로 변환합니다.
    • 전처리를 통해 1차원 배열이 가능하지만, 케라스 API의 철학에 따라 가능한 전처리 과정을 모델에 포함시키고 있습니다.
  2. 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스 활성화 함수는 무엇인가요?

    • reLU 는 입력값 x가 0보다 작으면 출력은 0, 0보다 크면 그대로 출력됩니다.
    • 시그모이드 함수는 x의 값이 좌우로 커지면 무한히 많은(정밀한) 출력을 만들어 내고, 이 현상이 누적될수록 성능 저하가 발생
    • 렐루 함수는 특히 이미지 처리에 좋은 성능을 낸다고 알려져 있습니다.
  3. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?

    • SGD 옵티마이저는 모든 가중치에 대해 동일한 고정된 학습률을 사용합니다.
    • Adagrad, RMSprop, Adam은 각각 적응적 학습률을 사용하여 가중치마다 학습률을 다르게 조정합니다.
    • 적응적 학습률을 통해 빠르고 안정적인 학습을 도모할 수 있습니다.
profile
소프트웨어 엔지니어

0개의 댓글