일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 선형함수 딥러닝
- weight 일부 고정
- 모델 freeze
- pytorch 데이터셋 나누기
- Skip connection
- 판다스 조건
- EDA in python
- sktime 예제
- pandas 특정 조건 열 제거
- pandas
- sktime
- python 경우의 수
- EDA 추천 파이썬
- 시계열 라이브러리
- 비선형함수
- layer 일부 freeze
- pandas 조건
- 일부 레이어 고정
- pretraining
- Graph Theory
- 비선형함수 딥러닝
- pytorch dataset split
- sktime tutorial
- 경우의 수 파이썬
- molecular representation
- sktime 튜토리얼
- Does GNN Pretraining Help Molecular Representation?
- pandas row 제거
- pandas 행 제거
- Prompt Tuning for Graph Neural Networks
- Today
- Total
MoonNote
딥러닝에서 비선형 활성화함수를 쓰는 이유? 본문
Linear activation function은 다음과 같은 형태이다.
A = cx
input을 받고 각 뉴런의 weight를 곱하고 input에 비례하는 output을 생성한다. 선형 함수는 1 or 0이 아닌 여러 output을 허용하기 때문에 step function 보다는 낫다.
하지만 다음과 같은 문제점이 있다.
1. 모델을 훈련하기 위해 backpropagation (gradient descent)을 사용하는 것이 불가능하다. function의 derivative가 일정하기 때문에 input과 input X와 관련이 없다. 따라서 backpropagation을 적용해도 input 뉴런의 어떤 weight가 더 좋은 예측에 영향을 주는지 이해할 수 없다.
2. 신경망의 모든 layer는 하나의 layer로 수렴한다. 선형 함수를 사용하면 layer수에 상관없이 마지막 layer는 첫 번째 layer의 선형 함수가 된다(선형 함수의 선형 조합은 여전히 선형함수). 따라서 layer를 쌓는 의미가 없어진다.
Linear activation function을 가진 신경망은 간단한 linear regression model과 같다. 복잡하고 다양한 input data의 parameter를 처리하는 능력이 제한적이다.
반대로 non-linear activation function을 사용하면,
1. input과 관련있는 derivate function을 가지기 때문에 backpropagation을 사용할 수 있다.
2. layer를 여러 개 쌓음으로써 deep한 신경망을 만들 수 있다. 여러 hidden layer는 복잡한 데이터셋을 학습하기 위해 필요하다.
Reference
'Study > Machine Learning' 카테고리의 다른 글
Pretext task (0) | 2021.12.01 |
---|---|
Shapley Value (0) | 2021.11.29 |
sktime (time series 라이브러리) (0) | 2021.11.05 |
Model Assessment and Selection (0) | 2021.10.23 |
Multilabel classification (0) | 2021.05.05 |