Neural Network(20)
-
Pytorch) multioutput Regression 구현해보기
Pytorch에서 multioutput regression을 구현해보고자 한다. 구현하게 된 이유는 sckit-learn에서 RegressorChain이라는 것을 보고 도움이 될 것 같아서 해보려고 한다. 실제 구현된 코드를 보니 다음과 같이 구현이 되어 있었다. 구현된 방식은 Chain인 경우에 X에다가 y 예측값을 붙이고, 또 그것을 사용해서 다시 y를 예측하는 방식이었다. 이 부분을 참고해서 딥러닝이다 보니 약간은 다르게 구현을 해봤다. class _BaseChain(BaseEstimator, metaclass=ABCMeta): def __init__(self, base_estimator, *, order=None, cv=None, random_state=None): self.base_estimat..
2022.03.26 -
Paper) Deep Neural Decision Forests 정리
기존의 randomforest 같은 경우 데이터의 주요 변동 요인을 포착하는 데 도움이 되는 내부 표현을 효율적으로 학습하는 메커니즘이 부족하다. 본 연구에서는 의사결정 트리의 divide and conquer 원칙을 통해 심층 아키텍처에서 representation learning에서 매력적인 속성을 통합하는 새로운 접근 방식인 Deep Neural Decision Forests을 제시함. 이 논문에서 우리는 (심층) 컨볼루션 네트워크에서 end to end 학습을 위한 대체 분류기로 사용할 수 있는 확률적이고 차별화 가능한 의사 결정 트리를 모델링하고 훈련하는 방법을 보여주었다. 기존의 의사 결정 트리 훈련에 대한 일반적인 접근방식은 일반적으로 탐욕스럽고 국지적인 방식(local manner)으로 작..
2021.12.18 -
Why You Should Always Use Feature Embeddings With Structured Datasets - 리뷰
정형 데이터에서 뉴럴 네트워크를 훈련시킬 때, 피처 임베딩은 중요한 것 중에 하나다. 이 기술은 NLP이외에는 좀 처럼 가르쳐 주지 않는다. 결과적으로 구조화 된 데이터 세트에서는 거의 완전히 무시됩니다. 그러나 이 단계를 스킵하는 것은 모델 정확성을 떨어트립니다. 이로 인해 XGBoost와 같은 그래디언트 강화 방법이 구조화 된 데이터 세트 문제에 대해 항상 우월하다는 잘못된 이해가 생겼습니다. 향상된 신경망을 임베딩하는 것은 종종 그래디언트 부스트 방법을 능가 할뿐만 아니라 이러한 임베딩이 추출 될 때 두 모델링 방법 모두 주요 개선 사항을 볼 수 있습니다. 이 기사는 다음 질문에 답할 것입니다. What are feature embeddings? How are they used with struct..
2021.02.28 -
[PyGAD] Python 에서 Genetic Algorithm 을 사용해보기
파이썬에서 genetic algorithm을 사용하는 패키지들을 다 사용해보진 않았지만, 확장성이 있어 보이고, 시도할 일이 있어서 살펴봤다. 이 패키지에서 가장 인상 깊었던 것은 neural network에서 hyper parameter 탐색을 gradient descent 방식이 아닌 GA로도 할 수 있다는 것이다. 개인적으로 이 부분이 어느정도 초기치를 잘 잡아줄 수 있는 역할로도 쓸 수 있고, Loss가 gradient descent 하기 어려운 구조에서 대안으로 쓸 수 있을 것으로도 생각된다. 일단 큰 흐름은 다음과 같이 된다. 사실 완전히 흐름이나 각 parameter에 대한 이해는 부족한 상황 import pygad import numpy function_inputs = [4,-2,3.5,5..
2021.01.30 -
[Review / NN] Cyclical Learning Rates for Training Neural Networks 논문
learning rate 같은 경우에 우리가 뉴럴 네트워크를 학습시킬 때 알고 싶어 하는 중요한 파라미터 중에 하나이다. learning rate 를 어떻게 하냐에 따라서 weight 업데이트의 크기가 달라지기 때문이다. 그래서 실제로 관련된 논문을 찾게 되었고, 마침 코드도 있어서 공유한다. Find optimal starting learning rate 아래 그럼 처럼 너무 작게도 크게도 안 좋은 것을 알 수 있다. 보편화된 최적 learning rate 라는 것은 없다고 할 수 있다. 그래서 보통은 손실 함수에서 유의미한 감소를 줄 수 있는 learning rate를 찾고자 한다. 이러한 learning rate를 찾기위한 체계적인 접근 방식은 학습률이 다른 손실 변화의 크기를 관찰하는 것입니다. ..
2020.10.21 -
Permutation importance 을 사용하여 딥러닝 모델 해석하기 (정형 데이터)
광고 한번만 눌러주세요 ㅎㅎ 블로그 운영에 큰 힘이 됩니다. 모델을 해석하는 방법에는 다양한 방법이 있고, 그중에 많은 패키지는 model-agnostic 한 방법으로 학습된 모델을 사후 해석하는 방향으로 해석을 합니다. 그래서 이번 글에서는 그러한 방법론 중 Permutation을 이용하여 변수 중요도를 구하는 방법을 소개하겠습니다. 여기서 사용하고 있는 많이들 알고 있는 Tensorflow를 사용하여 Neural Network를 기반 아키텍처에 대한 변수에 대한 중요도를 보이고자 합니다. 아래 그림 처름 주어진 데이터에 각 변수마다 Permutation을 통해 다양하게 섞습니다. 그리고 Permutation을 하였을 때, 결괏값의 Loss가 커질 경우, 그 변수는 중요한 변수라는 것을 의미합니다. 일..
2020.03.26 -
TABNET: ATTENTIVE INTERPRETABLE TABULAR LEARNING -2
TABNET: ATTENTIVE INTERPRETABLE TABULAR LEARNING -1 https://github.com/google-research/google-research/tree/master/tabnet https://arxiv.org/abs/1908.07442# 3. TABNET MODEL 3.1 PRINCIPLES (Fig. 2) 전통적인 뉴럴 네트워크 building bolcks들을 사용하여 decision tree-like output manifold의 시행을 초기에 고려했다. 개별 형상 선택은 초평면 형태의 의사결정 경계를 구하는 핵심 아이디어로, 구성 계수가 의사결정 경계에서 각 형상의 비율을 결정하는 형상의 선형 조합에 대해 일반화할 수 있다. 저자는 tree-like func..
2020.01.05 -
TABNET: ATTENTIVE INTERPRETABLE TABULAR LEARNING -1
https://github.com/google-research/google-research/tree/master/tabnet https://arxiv.org/abs/1908.07442# TABNET이라는 것을 우연히 찾게 되었다. 현재 딥러닝은 tabular data 보다는 image, speech, text 등 더 비정형 데이터에 많이 사용되고 개발되고 있다. 그래서 개인적으로 나는 그런 분야보다는 tabular data에 더 집중해서 공부하다 보니 많은 자료가 나오지 않아서 아쉬움을 느낀다. 그래서 이 TABNET이 google 분석가들이 쓴 글이니 어느 정도 tensor flow로 구현도 되어 있고, 기발한 아이디어가 있을 것 같아 읽어 보기 시작했다. https://openreview.net/fo..
2020.01.05 -
Gaussian Error Linear Unit Activates Neural Networks Beyond ReLU (GELU, ELU, RELU 비교글)
https://medium.com/syncedreview/gaussian-error-linear-unit-activates-neural-networks-beyond-relu-121d1938a1f7 Gaussian Error Linear Unit Activates Neural Networks Beyond ReLU Results of the various experiments show GELU consistently has the best performance compared with ReLU and ELU. medium.com GELU에 대해서 간단하게 알아보자 ## Google Bert def gelu(x): """Gaussian Error Linear Unit. This is a smoother ver..
2020.01.05 -
What is Label Smoothing? - 리뷰 (Overconfidence)
Lable Smoothing - Neural Netowork 모델 덜 과신하게 만드는 기술 딥러닝 문제로 분류 문제에 사용할 때, 보통 다음과 같은 문제에 직면하게 된다. ( Overfitting, overconfidence ) Overfitting은 많이 연구가 되고 있고, Early Stopping, Dropout, Weight Regularization etc 등을 해결할 수 있다. 반면에 Overconfidence는 아직 해결할 툴은 적어 보인다. Label Smoothing은 2가지 문제들에 대해서 해결할만한 regularization technique이라고 한다. Overconfidence and Calibration 만약 결과값의 예측된 확률들이 정확도에 반영한다면 분류 모델은 calibra..
2020.01.04 -
Self Normalizing Neural Network (Fully Connected Layer 의 희망?)
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ 2017년도 Feed Forward NN (FNN)에 관한 논문 CNN, RNN은 성공하고 있지만, FNN 쪽은 성능이 잘 안 나오고 있다. FNN 은 shallow layers 에서는 잘 되지만, 점점 깊어질수록 성능이 떨어지는 단점이 있다. 이 논문에서는 high level representation을 할 수 있게 하는 self-normalizing nn(SNN)을 제안한다. batch norm을 쓰면 명시적으로 정규화를 할 수 있지만 SNN을 쓰면 자동적으로 소말 라이징 하게 된다. snn의 활성화함수는 scaled exponential linear units(selu)를 사용한다. 바나흐 고정점 정리를 이용하여 우리는 ..
2019.11.09 -
MISGAN: LEARNING FROM INCOMPLETE DATA WITH GENERATIVE ADVERSARIAL NETWORKS 리뷰
Paper https://arxiv.org/abs/1902.09599 Code https://github.com/steveli/misgan/blob/master/misgan.ipynb 아주 빠르게 보고 싶어서, 이론적인 부분은 살펴보지 않고 핵심 아이디어가 먼지만 확인 Abstarct GAN은 복잡한 분포를 모델링하는 효율 적안 방법론이고 리고 다양한 어려운 문제들에 대해서도 효과적인 결과를 얻게 한다. 그러나 전형적인 GAN는 학습 동안에 완적 관측된 데이터를 요구했다. 이 논문에서는 고차원의 불정 말한 데이터를 학습하는 GAN 기반 방법론을 제안한다. 그 제안된 방법은 결측 데이터 분포를 모델링하는 MASK Generator와 함께 정말한 DATA Generator를 배우는 것이다. 우리는 우리의 프..
2019.10.20