10월, 2017의 게시물 표시

image processing with scikit-learn

http://scikit-image.org/docs/dev/auto_examples/index.html

POC by scikit-image

http://scikit-image.org/docs/dev/auto_examples/transform/plot_register_translation.html

another tensorBoard 4 pytorch

https://github.com/lanpa/tensorboard-pytorch.git

RCN Recursive Cortical Network

이미지
(RCN·Recursive Cortical Network)를 개발해 캡차를 94.3%의 확률로 뚫었다고 밝혔다. 캡차는 텍스트를 의도적으로 비틀거나 덧칠해 컴퓨터가 인식하기 어렵게 만든 암호다. 주로 6~8자의 알파벳이나 숫자를 일그러뜨려 제시한 뒤 이를 올바르게 인식하면 사람으로 판명한다. 자동화한 프로그램이 캡차를 해독할 확률은 1% 이하라고 알려져 있었다. 비카리어스AI가 개발한 RCN은 사람이 물체를 인식하는 방식을 따라한 알고리즘이다. 사람은 알파벳 A를 몇 번 따라 쓰며 학습하면 그 글자를 뒤집고, 기울이고, 비틀어도 알아볼 수 있다. 이를 AI에 접목한 것이다. 비카리어스AI가 개발한 알고리즘이 텍스트를 인식하는 과정. - 비카리어스AI 제공 RCN은 두 번의 과정을 거쳐 정보를 처리한다. 우선 문자의 윤곽선에 점을 찍어 좌표로 만들어 형태를 읽어낸다. 이후 윤곽선 내부 표면의 색이나 균일도 등을 읽는다. RCN은 새로운 글자를 접하면 이 과정을 거쳐 정보를 처리하고, 기존에 배운 글자와 비교해 결론을 낸다. 기존 딥러닝으로 학습한 텍스트인식 AI는 암호의 형태가 조금만 달라져도 암호를 풀지 못한다. 가령 글자의 자간을 15%만 넓히면 38.4%, 25% 넓히면 7% 수준으로 해독률이 급격히 떨어진다. 반면 RCN은 자간이 달라지거나 비트는 방식을 바꿔도 해독률은 그대로다. 2300만 건의 이미지를 통해 학습한 딥러닝 알고리즘이 89.9%의 확률로 캡차를 해독하는 반면 RCN은 고작 500개의 이미지로 학습하고도 해독률이 더 높다. 효율을 5만 배가량 높인 셈이다. 딜립 조지 비카리어스AI 연구원은 “사람이 리캡차를 해독하는 확률도 87.4%에 그칠 정도로 암호의 형태가 복잡해졌지만 AI가 간단한 학습을 통해 이를 풀어낼 수 있다는 것을 실증했다. 더 발전된 보안 기술이 필요할 것”이라고 말했다.

feature importance in label view

http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances.html

image save using matplotlib

import numpy as np import matplotlib . pyplot as plt # some data (512x512) import scipy . misc data = scipy . misc . lena () # a colormap and a normalization instance cmap = plt . cm . jet norm = plt . Normalize ( vmin = data . min (), vmax = data . max ()) # map the normalized data to colors # image is now RGBA (512x512x4) image = cmap ( norm ( data )) # save the image plt . imsave ( 'test.png' , image )

2D FFT by R & Imager Processing

https://dahtah.github.io/imager/imager.html#ffts-and-the-periodicsmooth-decomposition

Plot accuracy in train time

https://github.com/yunjey/pytorch-tutorial/blob/master/tutorials/02-intermediate/convolutional_neural_network/main.py#L83-L90

OpenNMT by PyTorch

https://github.com/OpenNMT/OpenNMT-py.git

Network Pruning by PyTorch

https://jacobgil.github.io/deeplearning/pruning-deep-learning

DeepDream by pytorch

https://github.com/SherlockLiao/Deep-Dream.git

Visual Attention by Pytorch

https://github.com/eladhoffer/seq2seq.pytorch.git seq2seq

cifar10 dataset loading by pytorch

https://github.com/kyuhyoung/pytorch_60min_blitz.git

Policy Gradient by PyTorch

https://github.com/spro/practical-pytorch.git

CUDA POC by Python

https://github.com/FelixLaufer/CUDARegistration.git

얼굴책의 협상가능 챗봇 by PyTorch

https://github.com/facebookresearch/end-to-end-negotiator.git

VQA1 by PyTorch

https://github.com/Cadene/vqa.pytorch.git

Kind PyTorch Tut

https://github.com/GunhoChoi/Kind-PyTorch-Tutorial.git

PyTorch API

https://github.com/j-min/pytorch_exercise/blob/master/torch_API.ipynb

attention-is-all-you-need-pytorch

https://awni.github.io/pytorch-tensorflow/

csv split by one column values

import pandas csv = pandas . read_csv ( 'test.csv' , sep = ',' , header = 3 , skipinitialspace = True ) # header=3 because your header is on the third line # skipinitialspace is set to True because your example data has spaces after commas csv_apples = csv [ csv [ 'Fruit' ] == 'Apple' ] csv_bananas = csv [ csv [ 'Fruit' ] == 'Banana' ] csv_apples . to_csv ( 'apples.csv' , index = False , sep = ',' ) csv_bananas . to_csv ( 'bananas.csv' , index = False , sep = ',' )

VGG face2 Dataset

http://www.robots.ox.ac.uk/~vgg/data/vgg_face2/

tensorBoard logging for pytorch

1. 로거 패키지 로딩 import torch import torch.nn as nn import torchvision.datasets as dsets import torchvision.transforms as transforms from torch.autograd import Variable # 로거 패키지 로딩 *********(1) from logger import Logger 2. 로거 경로 설정 # 로거의 로그경로 설정 logger = Logger( './logs' ) 3. 텐서보드 로깅         # (1) Log the scalar values ************** (3)         info = {             'loss' : loss.data[ 0 ],             'accuracy' : accuracy.data[ 0 ]         }         for tag, value in info.items():              logger.scalar_summary(tag, value, step +1 )

딥러닝은 더이상 블랙박스 툴이 아니다.

- 알비엠은 스토케스틱이고 딥러닝은 디터미니스틱 접근방법이다. - 인간생체신호 펄스처럼 작동하는 스파이킹 뉴럴네트웍 - 덴스넷은 레즈넷에서 아이덴티티루프를 더하는게 아니라 옆에 붙이는 것이다. - 이미지넷 사진갯수는 2017년 현재 천만장이다. - 아담보다 네스테로브가 더 학습을 잘할때도 있다. - 사람도 아기때는 비지도학습, 청소년이되선 지도학습을 한다. - 드랍아웃은 요즘 많이 안쓴다 - 배치노멀라이제이션은 데이타 분포를 시그모이드의 중앙으로 이동시키는 것이다. - 네트웍을 가지치기한후 재학습시켜 성능을 높이기도 한단다. 비임베디드 넷 프루닝. - KLD > JSD > 와써스타인 다이버젼스 - 안정정인 학습을 시켜주는 wGAN - 텍스트 같은 디스크릿 데이타는 갠 학습이 어렵다. - 텍스트를 생성해주는 seqGAN - 쌍을 이루지 않는 무작위 클래스데이타로부터 규칙을 학습하는 CycleGAN - 딥러닝의 결과에 대한 설명을 가능하게 해주련ㄴ 노력들. CAM, LIME 등등 - 클래스판단 근거를 샐리언시맵으로 보여주는 CAM - 입력 주변의 랜덤벡터로 선형모델을 만들어 해석하는 LIME - 결과에 가장크게 기여하는 학습데이타를 알려주는 influence Function - 분류결과를 겸손하게 만들어주는 기술. - 경제적 앙상블인 셈인 드랍아웃은 가우시안 프로세스와 유사하다고. - 성격이 다른 학습데이타들을 합치는 VAE 멀티모덜 트레이닝 기법 - 스스로 규칙을 찾아내는 VQA 와 RN의 원리. - VQA는 이미 인간 성능을 넘어섰다고.. - RN은 CNN과 FC의 중간이다. - RN은 피쳐들 뿐 아니라 피쳐들의 위치정보 또한 공유한다. - CNN 입력에 약간에 노이즈를 섞으면 ...

Wasserstein Estimate on GAN

이미지

Tensor var appeding to file

f = open( 'anoScore0728n.txt' , 'w' )      f.write(str(aScoreMean.data[ 0 ]))       f.write( '\n' )                    sumASM += aScoreMean       k += 1 f.close()

srGAN: super resoulution

이미지

DiscoGAN: skech to Photo

이미지

StackGAN: text to Photo

이미지

One-Class Classification (Anomaly)

이미지

Keras install with Theano Backend

$ pip install numpy scipy $ pip install scikit - learn $ pip install pillow $ pip install h5py $ pip install -- upgrade -- no - deps git + git : / / github .com / Theano / Theano .git       $ git clone https : / / github .com / Theano / Theano $ cd Theano $ python setup .py install $ pip install keras

3D Street View Dataset 800GB

https://github.com/amir32002/3D_Street_View.git

캐글 등 cs231n

- 콘볼루션 복습, tf.nn.conv2d()와 filter, stride, padding 파라미터들 사용법 - 비디오로부터 샐리언시 프레임 또는 샐리언시 클립을 찾아내는 알고리즘은 어떨까? -- 비디오 3차원 콘볼루션이면 가능할듯도 하다 - with 스코프 중에서 네임 스코프는 안쓰는게 좋다. - 텐서보드에서 콘볼루션 함수는 블럭으로 표시되고 클릭하면 상세 코드 보여짐 - 플래이스홀더 - 힌튼이 만든 오토엔코더는 라벨이 없어서 비지도학습으로 분류될뿐 카테코링 기능은 없다. - 오토엔코더의 오토는 오토코릴레이션처럼 자기 이미지를 재활용한다는 의미로 붙인듯 - 강화학습도 라벨링이나 어노테이션이 없다는 측면에서 비지도학습 범주에 들듯하다.  -- 대신 에이전트를 만들어주어야하는 문제가 .. - 형규의 코엑스 관람기,  FaaS, Cloud 와 데이타의 중요성 이야기 - 초일님은 이미 어노테이션 전문업체와 협업하는 중이라고 .. - 비디오태킹 프로젝트: 1초에 한장씩만 뽑아 1024 피쳐벡터를 뽑는다. - 논문 내용 이야기: Youtube-8m Video Large Scale .. - 기타 논문들 -- Video frame Feature Pooling(피쳐 셀렉션과 유사) 에 맥스풀링이 가장 좋다고 - 비디오 프레임들에서 피쳐풀링하면 동적인 피쳐가 얻어짐. - 캐글은 데이타에 대한 이해가 가장 중요한듯 하다. - 초일 논문: rDNN - 3개의 복잡한 레귤러라이제이션을 두어 퓨전 성능을 높이는 연구내용 - 오디오, 이미지, 트래젝토리 등 비디오 데이타 멀티퓨전시 얼리퓨전이 성능이 더 좋더라. - 이미지들로 비교로 만든 컨퓨전 매트릭스의 대각선 색상 이야기.. 등.

SVM, KNN cs231n

- SVM 모델의 로쓰함수는 힌지로쓰이다. - 힌지로쓰안에는 강건함을 위해 +1 이 추가된다. - +1은 경험에 의한 고정된 값이다. - SVM의 로쓰함수는 분리선 과 각 서포트벡터들 간의 수직거리의 합이다. - 같은 로쓰값을 보이는 가중치 조합이 여러개 있을수 있다. - 레귤러라이제이션은 고차함수로 오버핏되는걸 막기위해 초저주파 성분(상수값)을 더해주는 것이다. - 앙상블 레귤러라이제이션은 엘원과 엘투 정규식을 섞어서 만든다. - 소프트맥스 로스함수는 마이너스로그 형태를 취하며 값은 플러스로 나온다. - 쌔너티 체크를 써서 소프트맥스의 출력이 잘 나오는지 확인하라. - Mask R-CNN ? - f(x; W)에서 ;연산자의 의미는 W측면에서 x - SGD는 해석적이 좋으며 속도측면에서 문제로 미니배치를 사용한다. - 오류역전파시 더하기 노드는 그레디언트 분산기 역할, 곱하기노드는 그레디언트 스위치 역할, 그리고 최대값노드는 그레디언트 라우터 역할을 한다고 볼수있다,. - 파이썬도 브로드캐스팅으로 변수를 공유한다? - 자코비안은 1차 편미분 연산행렬 - 렐루도 연속함수이므로 의 꺽이는 점에서의 미분은 별문제 없다. - KNN은 1클래스 1클래시파이어의 일종이다. - 오늘 두번째 발표자의 웃는 모습은 약간 탤런트 성동일 닮았다. - 리키렐루는 배니싱그레디언트의 포화문제 제거에 효과적 - 소프트플러스 렐루는 평균이 0이 되어 그레디언트 밸런싱이 좋다고 ? - 히든노드가 많아지면 분리면이 복잡해져 오버핏을 유발할수있다.  - 레이어 갯수가 많아질수록 다차원분리가 가능해 복잡한 문제의 해결이 가능하다.

History & Activation F cs231n

- 98년 르넷5를 시작으로 딥러닝 시작됨. - 57년 퍼셉트론이 등장, 로젠블라트 아날로그 컴퓨터로 구현. - 49년 Heb 이 시냅스 연결강화 메커니즘 모방, Hebian Learning 알고리즘 창시 -- 출력과 타겟값 차에 입력을 곱한걸 더해서 가중치 갱신하는 개념 처음 도입. - 60년 위드로우 호프, 아달라인, 마달라인 아날로그 컴퓨터 발명. 진공관 사용 - 86년 오류역전파 발명, 에너지함수를 가중치로 편미분하는 방식. 힌튼 등... 헤비안 런닝을 하이퍼공간에서 편미분으로 확장 - 66년 RBM 비지도학습을 층마다 수행해 오토엔코더로 전체 재학습=DBN, 배니싱그레디언트를 극복하려는 눈물겨운 노력. - 닷프로덕트는 행렬연산 측면에서본 콘볼루션의 다른 표현이다, - 56x56x64 맵에 1x1x32 콘볼루션을 하면 56x56x32 맵이 된다= 일종의 채널 풀링 인셈. - 맥스풀링은 비선형성 향상 외에 계산측면에서도 에버리지 풀링보다 유리할까? - 가중치 그레디언트: dE/dW(편미분) 사실상 이걸 풀기위해 오류역전파를 하는거지... - 액티베이션 그레디언트: dO/dW - 1x1 콘볼루션으로 완벽하게 FC 를 대치하는게 가능하다고 - 렐루가 시그모이드나 하이퍼탄보다 계산속도가 6배 빠르다 - 렐루를 쓸땐 바이어스를 0.01 정도로 주고 시작하는게 좋다. 다른거지만 힌지로쓰의 +1 이 생각난다. - 리키 렐루 식= max(0.01x, x) - PReLU 식= alpha * max(0, x) - ELU를 쓰면 BN을 덜써도 된다. 그 이유가 뭐라고? 벌써 까먹 - maxout 은 곱의 합과 맥스풀링으로 전달함수를 구현한 셈이며 베니싱그레디언트에 강하다. - 딥러닝 전처리시에 알렉스넷은 채널 내에서 평균을 구하고 VGG는 채널간에 평균을 구한다. - 작은값으로 초기화된 가중치망에서 네떡이 딥해질수록 그레디언트들은 0에 수렴한다. - 큰값으로 초기화된 가중치망에서 네떡이 딥해질수록 그레디언트들은 -1, 1에 수렴한다. - 제비어 초기화는 가중치 초기값 분포...