• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

CNN 모델 관련 질문 드립니다.

21.08.05 04:02 작성 조회수 169

0

안녕하세요. 강의를 듣다가 궁금한게 생겨서 질문 남깁니다.

아래 CNN 모델 파라미터 설정 부분에서 

tf.keras.layers.Conv2D(filters=32, kernel_size=5, strides=1, padding='same', activation='relu')

filters와 activation에서 의문이 듭니다.

첫 째, filters가 32로 설정되어 있는데, 이미지에 5x5 크기의 32개 필터를 적용한 것으로 이해가 됩니다. 즉, 1개의 이미지가 32개의 필터링된 이미지로 변환.

여기서 드는 의문점은 필터의 종류만해도 수십가지가 될텐데, 이거는 CNN 모델이 알아서 적용을 하는 것인가요?

만약 그렇다고하면 원리가 무엇인지 알 수 있을까요?

CNN을 제가 이해하기로는 이미지에서 특정 부분을 추출하여 NN 입력으로 사용하는 것 같은데, 여기서 학습하면서 바뀌는 건 NN의 파라미터라 생각이 되거든요.  그러니까 필터는 학습하는 과정에서 바뀔 것이라 생각이 안되는데 어떻게 CNN 모델이 알맞은 필터를 적용할 수 있는지가 궁금합니다.

둘 째, activation이 설정되어 있는데, 필터링한 이미지에 왜 activation을 적용해야하는지 의문이 듭니다. 

제가 머신러닝에 대한 기초도없고 딥러닝에 대한 기초가 없어 질문이 너무 난해할 수 있을 것 같네요. 그래도 답변 부탁 드립니다. 감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요~. 반갑습니다.

여기서 드는 의문점은 필터의 종류만해도 수십가지가 될텐데, 이거는 CNN 모델이 알아서 적용을 하는 것인가요?

만약 그렇다고하면 원리가 무엇인지 알 수 있을까요?

-> 

CNN 모델이 알아서 적용하는 것이 맞습니다. 원리는 Loss Function을 최소화하는 값으로 파라미터를 갱신하는 것입니다. 즉, 정답과 오차가 가장 작은 파라미터(=Loss Function이 최소화되는)를 만들려면 어떻게 파라미터를 변경해야하는지를 자동으로 찾아가는 과정입니다.

둘 째, activation이 설정되어 있는데, 필터링한 이미지에 왜 activation을 적용해야하는지 의문이 듭니다. 

->

Activation은 딥러닝 모델이 Non-Linear한 패턴을 학습하고, 중요한 정보를 강조하고 불필요한 정보를 제거하기 위해서 딥러닝에서 구조적으로 취하는 패턴입니다. 좀더 자세한 내용은 아래 링크를 참조하세요.

https://www.analyticsvidhya.com/blog/2020/01/fundamentals-deep-learning-activation-functions-when-to-use-them/

감사합니다~.