Stack Building

신경망 공부하면서 궁금한 것들 셀프 질답 본문

딥러닝

신경망 공부하면서 궁금한 것들 셀프 질답

S00ahKim 2019. 8. 24. 15:09

1. 활성 함수는 왜 쓰는가?

딥러닝 네트워크에서는 노드에 들어오는 값들에 대해 곧바로 다음 레이어로 전달하지 않고 주로 비선형 함수를 통과시킨 후 전달한다. 이때 사용하는 함수를 활성화 함수라고 부른다. 값에 따라 이 값을 활성화할지 비활성화할지 정하는 셈임. 여기서 주로 비선형 함수를 사용하는 이유는 선형함수를 사용할 시 층을 깊게 하는 의미가 줄어들기 때문이다.

선형함수인 h(x)=cx를 활성화함수로 사용한 3층 네트워크를 떠올려 보세요. 이를 식으로 나타내면 y(x)=h(h(h(x)))가 됩니다. 이는 실은 y(x)=ax와 똑같은 식입니다. a=c3이라고만 하면 끝이죠. 즉, 은닉층이 없는 네트워크로 표현할 수 있습니다. 뉴럴네트워크에서 층을 쌓는 혜택을 얻고 싶다면 활성화함수로는 반드시 비선형 함수를 사용해야 합니다. - 밑바닥부터 시작하는 딥러닝 -

 

 

2. 비선형 함수는 무엇인가?

선형이라는 것은 직선이 아닐 지라도 직선의 특징을 가지고 있다는 것이고 여기서 말하는 직선의 특징은 중첩의 원리(principle of superposition)또는 선형성의 원리(Linearity principle)이다. 이런 선형성이라는 말은 함수에 적용이 될 수도 있고, 선형으로 결합되어있는 어떤 것에도 적용이 될 수 있다. 중첩의 원리는 선형함수를 예측가능하게 만들어 준다. 비선형함수는 함수의 수식이 알려지지 않았을 때, 함수값을 예측하기가 매우 어렵다.

 

 

3. 딥러닝에서 레이어를 써서 어떻게 정확도가 높아지지?

딥 러닝 또는 심층학습(深層學習, 영어: deep structured learing, deep learning 또는 hierarchical learning)은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는 기계학습 알고리즘의 집합 으로 정의되며, 큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야

 

 

4. 확률과 우도likelihood는 무슨 차이지?

한마디로 말하자면 probability는 result에 관한 것이고 likelihood는 hypothesis에 관한 것이다.

동전을 던지는 것과 같이 성공/실패로 이분법적 결과가 나오는 binomial 시행을 예로 들어보겠다. 가능한 '성공' 횟수를 변수로 하여 probability를 구해 보도록 하자. 시행할 횟수 (동전을 몇 번 던질 것인가)와 성공 확률 (앞면이 나올 확률이 얼마인가)가 미리 주어진다. 이 paramter값들에 무관하게 각 경우에 대한 probability의 합은 1이 되어야 한다. (그림 1 상단)

반면, likelihood를 구할 때 미리 주어지는 것은 '성공'한 횟수 (앞면이 나온 횟수)와 시행한 횟수 (동전을 몇 번 던졌는가)이다. 다시말해 이번에는 result가 paremter로 여겨지는 것이다. 이번에는 예상되는 성공 횟수가 변수가 되는 대신 성공할 확률이 변수가 된다. 어떻게 생각하면 probability를 구하는 것의 역방향 연산이라고 볼 수도 있다. (그림 1 하단)

--------------------------

은선 피셜 확률->우도지만 우도-/->확률 이라고 함.

정리하자면 아마 확률은 진짜 이론적으로 발생할 확률이고, 실제 상황이 항상 이론적으로 실행되는 경우는 없으니까 실제로 실행된 걸 보고 그거 바탕으로 알아보는 게 우도인 것 같음.

 

 

5. 소프트맥스 함수가 뭐지?

Softmax(소프트맥스)는 입력받은 값을 출력으로 0~1사이의 값으로 모두 정규화하며 출력 값들의 총합은 항상 1이 되는 특성을 가진 함수이다. 다범주 분류문제를 풀기 위한 딥러닝 모델 말단엔 소프트맥스 함수가 적용된다.

 

 

6. Loss Function과 Cost Function은 다른 건가?

로스펑션은 내 모델을 통해 생성된 결과 값과 실제로 발생하기를 원했던 값간의 차이를 계산하는 함수다. 대표적으로 MSE(실수일 때), 크로스 엔트로피(원핫인코딩/ 두 확률분포 pp qq 사이의 차이를 계산하는 데에 사용)가 있음. 코스트 펑션은 현재의 response가 사용 가능한 데이터에 얼마나 잘 맞는지를 말함. 로스 펑션이 좀 더 데이터 포인트에 대해 대한 거고 코스트 펑션은 더 일반적인 것을 말하는 것 같음. (단일 train/전체train set) 혼용하는 경우도 있다고 함.

 

 

7. 머신러닝과 딥러닝은 비슷한 거 아닌가?

  1. 데이터를 탐색한 후 전처리하고
  2. 데이터 변수 등을 분석하여 전체 훈련용, 테스트용 데이터 셋을 구성한 다음
  3. 해결하고자 하는 문제에 맞는 알고리즘을 선택하여 모델을 만든 후
  4. 훈련용 데이터 셋으로 모델을 학습시키고
  5. k-folds 교차검증 및 테스트용 데이터 셋 으로 모델 간 검증을 진행하고
  6. 최고의 성능을 보이는 모델을 최종 배치한다.

방법론의 하나이긴 함. 머신러닝이 위와 같은 과정으로 진행되는데, 딥러닝은 2번이 없어짐. 알아서 중요한 피처를 찾아가니까.

 

 

8. 음의 로그우도는 왜 쓰이는 거야?

딥러닝 모델의 손실함수임. 딥러닝 모델을 학습시키려면 주어진 데이터만으로 미지의 최적 모델 세타를 찾아야 함. 입력값 X와 파라미터 세타가 주어질 때 정답 Y가 나타날 확률을 우도라고 하는데, 우도를 최대화하는 세타를 찾는 것이 우리의 목표임.

"손실함수로 음의 로그우도을 쓸 경우 몇 가지 이점이 생긴다고 합니다. 우선 우리가 만드려는 모델에 다양한 확률분포를 가정할 수 있게 돼 유연하게 대응할 수 있게 됩니다. 음의 로그우도로 딥러닝 모델의 손실을 정의하면 이는 곧 두 확률분포 사이의 차이를 재는 함수인 크로스 엔트로피가 되며, 크로스 엔트로피는 비교 대상 확률분포의 종류를 특정하지 않기 때문"

+ NN에서 은선피셜 convex하게 만들어주기 위해.

 

 

9. 가우시안 분포랑 베르누이 분포?

가우시안 = 정규 / 베르누이 = 이항

 

10. 왜 ReLu를 많이 쓰지?

간단하고 사용이 쉽기 때문

 

 

출처

딥러닝에서 사용하는 활성화 함수

선형함수와 비선형함수의 차이

위키백과-딥러닝

확률과 우도

확률과 가능도

소프트맥스 함수

softmax with loss 계층

loss function

로스펑션과 코스트펑션

머신러닝에서의 손실함수

문과생도 이해하는 딥러닝 5 - 신경망 학습 실습

What is the difference between a cost function and a loss function in machine learning?

딥러닝 모델의 손실 함수

 

'딥러닝' 카테고리의 다른 글

[pytorch] 시작하기  (0) 2019.08.31
신경망 기초  (0) 2019.08.27
신경망 공부하면서 궁금한 것들 셀프 질답 2  (0) 2019.08.25
딥러닝 기초  (0) 2019.06.04
[tensorflow] 시작하기  (0) 2019.04.16
Comments