Neural Network(20)
-
selu보다 좋은 mish 활성화 함수
새로운 activation을 소개하는 논문이 나왔다. 일단 논문은 안읽고 바로 적용하면서 부분적으로 읽어서 좋은 점만 알아보는 걸로... def relu(x): return max(0,x) def swish(x) : return x * tf.nn.sigmoid(x) def mish(x) : return x * tf.nn.tanh( tf.nn.softplus(x)) mish를 사용하니, 평균 정확도도 올라가고 정점의 정확도도 올라가는 것을 확인했다고 함. 왜 Mish가 잘 되는지? 1. 위에 무한이 있으면(즉, 양의 값이 어떤 높이로든 갈 수 있음) 캡핑으로 인한 포화를 피할 수 있다. 2. 약간의 음수를 허용해서 relu zero bound 보다는 gradient 가 더 잘 흐르게 함. 마지막으로 현재 ..
2019.10.15 -
Designing Your Neural Networks 리뷰
https://towardsdatascience.com/designing-your-neural-networks-a5e4617027ed Designing Your Neural Networks A Step by Step Walkthrough towardsdatascience.com What’s a good learning rate? How many hidden layers should your network have? Is dropout actually useful? Why are your gradients vanishing? 모델링을 하다 보면 이런 질문들이 나올 수 있다. 이 포스트에서는 네트워크 아키텍처를 만들 때의 팁들을 제시한다. 이것을 포스팅하는 이유는 중간에 activation에 따라서 어떠한 ..
2019.09.26 -
Swish , Selu activation function 둘중에는 Selu?
https://towardsdatascience.com/gentle-introduction-to-selus-b19943068cd9 A first Introduction to SELUs and why you should start using them as your Activation Functions A first introduction to SELUs, their relation to ReLUs as well as the issues of vanishing gradients and normalization. towardsdatascience.com 기존에 포스팅하고자 했더 selu를 쓰라고 했는데, 다른 함수에 대한 설명들도 있길래, 일단 끄적여본다. 일단 selu가 relu보다 좋은 점은 다음과 같다고..
2019.09.14 -
[ Python ] Neural Network의 적당한 구조와 hyperparameter 찾는 방법
hyperparameter를 찾는 우리의 옵션은 몇 가지가 있다. 1. Hand Tuning or Manual Search 하나씩 시도해서 올바른 구조를 찾는 것은 굉장히 고된 일이다. 그러나 약간의 경험과 초기 결과에 대한 섬세한 분석은 도움이 될 수 있다. 2. Grid Search 최적화를 하기 위해서 원하는 각각의 범위를 정해서 통과시킨다. 그러나 이러한 방법은 다 해보기 때문에, 보고자 하는 파라미터가 많아질수록 시간이 많이 걸릴 것이다. 3. Random Search 모든 가능한 조합에서 랜덤하게 선택하는 방법으로 결국 Grid Search의 subset이 된다. 4. Bayesian Optimization/Other probabilistic optimizations 나도 개인적으로 제대로 최..
2019.09.08 -
여러가지 구조의 Autoencoders
일반적인 AutoEncoder는 feed forward NN 구조인데, 이 구조에서는 인풋을 hidden으로 만들고 다시 인풋으로 만드는데, 이 hidden을 잘 학습을 하는 것이 목적이라고 할 수 있다. 이 포스트에서는 여러 가지 AutoEncoder 구조에 대해서 설명을 한다. 만약 우리가 수백만장의 이미지가 있고 각 이미지는 약 2MB를 차지하는데, 우리는 1MB만 제공할 수 있다. 이처럼 데이터 차원을 잘 줄여야 할 때 어떻게 해야 할까? 이미지를 잘 보다 보면, 정보와 무관한 것이 많이 있을 때가 있다. 예를 들어 배경 같은 것은 사실 이미지랑 관계없지 않은가! 그래서 이렇게 쓸모없는 정보를 줄일 수만 있다면 우리는 1MB짜리로 줄일 수 있을 것이다. 그래서 결국 Hidden으로 저장해서 많은 ..
2019.06.13 -
[Python] 실습 Categorical 변수를 Embedding 해보기
https://data-newbie.tistory.com/90?category=749566 NN에서 Categorical Variables에 대해서는 어떻게 해야할까? 현재 Neural Network는 주로 이미지나 비디어 같이 Unconstructed Data에 대해서 Convolution을 사용해서 feature의 Parameter 개수를 축약하면서 Wide한 구조로 만들 수 데이터에 대한 Representation을 layer에.. data-newbie.tistory.com 이번에는 실습을 해보려고 합니다. 이것의 배경에 대해서는 위에 있으니, 참고해주시면 감사하겠습니다. 일단 직관적인 설명은 Categorical를 Embedding을 통해 더 낮은 차원으로 Embedding을 해줍니다. 곧 wor..
2019.05.20 -
Neural Network를 학습하기 전에 Normalize를 왜 해줘야 할까?
medium을 보다가 평소에 관심을 가진 주제에 대한 글이 있어서 보기로 하였습니다. 단순 번역일 것 같으니, 원본은 아래에 링크를 남겼습니다! 실제로 기존에 뉴럴 넷을 학습시킬 때는 다 데이터를 normalize를 해줍니다. 금액이든 , 나이든 변수 같은 것을 다 0 주변으로 모아준다는 이야기죠 보통 그렇게 하면 장점이 있다고 합니다. 학습이 빨라진다. 수렴을 빨리한다. 참고로 요즘은 sigmoid activation을 NN에서는 거의 안 쓴다고 합니다. 다 알다시피, backpropagation 문제도 있죠? Vanishing gradient 나 exploding gradient 이 글에서는 tanh 와 sigmoid로 비교를 합니다. 결론은 tanh가 좋다는 겁니다. Sigmoid (=logisti..
2019.05.17 -
Andrew NG Regularization 중 인상깊었던 것만
## Edwidth https://www.edwith.org/deeplearningai2/joinLectures/20015 심층 신경망 성능 향상시키기 강좌소개 : edwith - 커넥트재단 www.edwith.org Regularization Overfitting 방지 Dropout 은 몇개를 제외함으로써 특정변수의 의존도를 줄여서 분산을 크게하는식 Input 에서는 거의 0.999 나 1 Overfitting 이 발생될것같은곳만 하기 이미지에서는 일반적으로 사용하나 일단 오버피팅이 나는지 체크해보고 하는 것이 좋음 이미지는 픽셀 단위고 데이터가 적어서 overfitting이 많이 일어나므로 한다고 함 l1 norm 거의 사용 x L2norm = weight decay 와 같은 효과 Dropout 도 ..
2019.05.04