분류 전체보기 194

Regularization for neural networks

Regularization for neural networks Regularization은 머신러닝에서 굉장히 중요한 주제입니다. 먼저 간단히 선형 회귀에서 활용되는 Regularization 기법에 대해서, 그리고 Neural Network에서 사용되는 기법들에 대해서 적어보려고 합니다. 서울대학교 이준석 교수님의 ‘시각적 이해를 위한 기계학습’ 와 위키피디아를 참고했음을 밝힙니다. 우리가 어떤 데이터에 대하여 모델을 fitting 시키는데, general한 trend에 fitting 시킬수록 좋습니다. Overfitting은 학습 데이터의 노이즈가 있을 때, 이 노이즈까지 fitting하는 것을 말합니다. 만약 모델이 불필요하게 복잡하다면 Overfitting의 증거일 수 있습니다. 이것을 방지하기 ..

[Paper review] ImageNet Classification with Deep Convolutional Neural Networks

Alex Krizhevsky, Ilya Sutskever, G E Hinton이 2012년 ImageNet을 뒤집어놓으신 ImageNet Classification with Deep Convolutional Neural Networks 을 읽고 필요한 부분을 남긴 글 입니다. 저자가 Alex라서 AlexNet이라고 하며, CNN을 처음 접할 때 많이 읽는 논문입니다. Abstract Deep convolutional neural network로 ImageNet 컨테스트에서 좋은 성적을 거둔 모델입니다. 발표 당시 SOTA보다 더 좋은 성능을 냈었습니다. 분류 성능을 10% 정도 가볍게 올려서, 많은 충격을 주었다고 합니다. 구조는 5개의 Convolutional layer로 구성되어 있고, 60백만개의 ..

[Paper review] A Neural Probabilistic Language Model

Yoshua Bengio 등, 2003년 The Journal of Machine Learning Research에서 발표한 A Neural Probabilistic Language Model 논문을 읽고 남기고 싶은 부분을 정리한 글 입니다. Abstract statistical language model의 목적은 언어의 단어들의 연속에 대한 결합 확률 함수를 학습하는 것입니다. 이것은 curse of dimensionality 때문에 어렵습니다. 이를 해결하기 위한 전통적인 방법은 n-gram입니다. 본 논문에서는 n-gram 대신 semantically 유사한 문장들을 알 수 있는 distributed representation을 제안합니다. model은 단어의 distributed represen..

주성분 분석 (PCA, Principle Component Analysis)

주성분 분석 (PCA, Principle Component Analysis) 주성분이란 데이터에 새로운 축을 긋고, 그 축에 데이터들을 사영 시켰을 때 분산이 큰 축들을 의미합니다. 가장 큰 분산 축을 정하게 되면, 그 다음에는 직교인 축들 중에서 정하게 됩니다. 위 이미지는 데이터들의 두 주성분을 나타낸 그림입니다. 오른쪽 위를 향하는 화살표 축을 PC1, 왼쪽 위를 향하는 화살표 축을 PC2라고 해보죠. 그림을 보면 PC1 축에 데이터들을 사영 시킬 때 분산이 가장 클 것으로 예상이 됩니다. 그 다음 PC1에 수직인 축 중 분산이 가장 큰 PC2를 선정하게 됩니다. 주성분 분석 계산을 이해하기 위해 필요한 개념들을 먼저 설명해보겠습니다. 1. 켤레 전치 (Conjugate transpose) 복소수 ..

Activation functions: Sigmoid, Tanh, ReLU

Activation functions: Sigmoid, Tanh, ReLU 뉴럴 네트워크의 non-linearity 표현을 가능하게 해주는 activation function에 관한 포스트입니다. 서울대학교 이준석 교수님의 '시각적 이해를 위한 기계학습' 강의를 듣고 정리하였음을 밝힙니다. Sigmoid Function Sigmoid fuction은 아래와 같은 식으로 정의 됩니다. $$ \sigma(x)={1 \over 1+e^{-x}} $$ Sigmoid function의 장점은 0에서 1 사이의 값이 나온다는 것 입니다. 그렇기 때문에 사람이 값을 해석하기가 상대적으로 쉬워 역사적으로 유명합니다. Sigmoid function의 단점은 세 가지가 있습니다. zero-centered 되..

[Paper review] LeCun, Y., Bengio, Y. & Hinton, G. Deep learning. Nature 521, 436–444 (2015)

Deep learning 본 포스트는 LeCun, Y., Bengio, Y. & Hinton, G. Deep learning. Nature 521, 436–444 (2015) 논문을 읽고, 남기고 싶은 내용들로 간추린 글 입니다. Abstract 딥러닝을 다양한 레벨의 추상화와 함께 데이터의 표현을 배울 수 있는 여러가지의 프로세스 레이어로 구성되어 있는 계산 모델을 가능하게 합니다. 이런 방법들은 음성 인식, 시각적 사물 인식, 사물 감지 그리고 많은 다른 도메인의 SOTA를 극적으로 향상 시켰습니다. 딥러닝은 많은 데이터 셋에 있는 뒤얽힌 구조를 역전파 알고리즘을 사용하여 발견합니다. 역전파 알고리즘은 머신이 이 전 레이어의 표현으로부터 각 레이어의 표현을 계산하기 위해 사용되는 내부 파라미터들을 어..

distributed-representation

Distributed representation Distributed representation에 관한 포스트입니다. 원론적인 내용과 Local representation과의 차이를 이해하기 쉽게 예제로 풀어보았습니다. Representation in deep learning Representation은 뉴로사이언스, 인지 과학에서의 representation은 현실 세계의 특정한 사물이나 정보를 만들기 위한 사람 마음 안의 심볼을 의미한다고 합니다(https://en.wikipedia.org/wiki/Mental_representation). 굉장히 추상적인데, 저는 사람이 무언가를 떠올릴 때 살아가면서 학습한 그 무언가에 대한 특징들을 무의식적으로 활용한다는 뜻으로 이해했습니다. 딥러닝을 공부하다 보..

CNN (Convolutional Neural Network)의 이해

CNN (Convolutional Neural Network)의 이해 이미지, 영상과 같은 시각적 데이터에 사용되는 CNN (Convolutional Neural Network)에 대한 글입니다. 위키피디아, http://taewan.kim/post/cnn/#fnref:3 블로그와 CS231n (https://cs231n.github.io/convolutional-networks/)를 참고하였음을 밝힙니다. 도입 사람은 이미지, 영상을 어떻게 이해할까요? 깨어 있는 동안 수많은 시각적 정보를 보는데, 그 모든 정보에 중요하게 받아들이지는 않습니다. 산책을 하면서 지나가는 사람들, 나무들을 의식하지 않으면 대부분 인지 과정의 유의미한 신호로 처리 되지 않습니다. 잠시 제 뇌 안에 머물다가 사라지거나,심지어..

Greenplum - Backup and Recovery

- Backup and Recovery MPP 특성에 맞게, Backup도 Master들과 Segment들 각각 해주어야 한다. GP V5 이상부터는 gpbackup과 gprestore를 권장한다. gpbackup을 하게 되면 Master에 있는 각 데이터 Segment들의 catalog 정보를 backup하고, 이후 Segment들의 데이터가 backup된다. Master는 $MASTER_DATA_DIRECTORY/db_dumps/YYYYMMDD/ 폴더에, Segment는 /data#/primary/gpseg##/db_dumps/YYYYMMDD/ 폴더에 backup 파일들이 생기게 된다. gpdbrestore후에 통계정보를 업데이트하기 위해 Analyze를 실행하는 것을 권장한다. PostgreSQL에..

Greenplum 2019.12.13

Greenplum - Data manipulations

- Data manipulations INSERT, UPDATE 등 테이블의 데이터를 조작하는 것은 일반적인 DBMS와 유사하다. 다만 GP v4에만 분산키와 파티션키가 업데이트 되지 않는 제한이 있다. GP의 transaction은 BEGIN (혹은 START)로 시작되고, END (혹은 COMMIT)으로 commit된다. psql에서 transaction이 Autocommit되기 때문에, 유효한 구문은 자동적으로 commit된다. 기본적인 OLTP DBMS는 테이블을 실수로 DROP하게 되면 어딘가 DROP되기 전으로 돌릴 수 있는 기능이 있는데, OLAP DBMS인 GP는 그런 기능이 없다고 한다. 예전에 프로젝트에서 실수로 날라간 데이터들을 동료가 살린 기억이 있는데, 어떻게 한 것일까? 조금 더..

Greenplum 2019.12.13