분류 전체보기
[TensorFlow] CNN
[TensorFlow] CNN
2017.04.22CNN다음과 같이 그래프를 미리 빌드해 놓은 다음,신경망에 통과시킬 input image를 실행 시점에 ``py sess.run( , feed_dict={})``를 통해 넘긴다.```python# 구식 방법W1 = tf.Variable(tf.random_normal([3, 3, 1, 32], stddev=0.01)) #H, W, C, FNb1 = tf.Variable(tf.zeros([32])) L1 = tf.nn.conv2d(X_img, W1, strides=[1, 1, 1, 1], padding="SAME")L1 = tf.nn.relu(L1+b1)L1 = tf.nn.max_pool(L1, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME")L1 = t..
[TensorFlow] 자료형과 기본적인 사용법
[TensorFlow] 자료형과 기본적인 사용법
2017.04.20https://www.tensorflow.org/programmers_guide/graphs#building_a_tfgraph 텐서플로우는 dataflow-graph를 구성하고, graph의 일부를 Session으로 구성해 실행시키는 방식이다.Note ) 단순히 TensorFlow API를 호출하는 것 만으로도 tf.Graph에 tf.Operation(Node)와 tf.Tensor(Edge)가 추가된다.따라서 노드가 추가될 graph를 명시할 수 있는데, 명시하지 않는 경우 default graph에 추가된다.다른 graph에 노드를 추가하려면 ``py graph.as_default()``를 사용한다. * ``py with``가 끝나면 다시 default context다.```python>>> impor..
[python] Jupyter notebook
[python] Jupyter notebook
2017.04.16https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/Help - Keyboard Shortcuts에서 Shortcut을 볼 수 있고 Edit도 가능하다.Keyboard Shortcuts help의 단축키는 H Docstring shortcut : `` shift + tap`` ( twice ) IPython 4.0부터 notebook 기능 등은 jupyter로 옮겨가고, IPython은 Interactive Python 기능만 지원한다고 한다.그래서 notebook을 사용하려면 Jupyter를 사용해야 한다. ```jupyter notebook```기본 IP:port는 localhost:8888 이다. 들어가면 웹에서 편집, 저장, ..
Supervised, Unsupervised / Linear Regression
Supervised, Unsupervised / Linear Regression
2017.04.15ANN에서 문제를 해결하는 방식은 두 단계로 이루어져 있다.학습 : 학습 데이터를 이용해 가중치 매개변수를 학습한다. (지도 학습, SL(Supervised learning))추론 : 학습한 가중치 매개변수를 이용해 입력 데이터에 대한 결과를 추측한다.추론은 다시 분류(Classification)와 회귀(Regression)로 나뉜다. Supervised, Unsupervised지도 학습과 비지도 학습의 차이는, 학습 데이터가 라벨링되어 있느냐이다.라벨링되어 있는 경우 데이터를 어떻게 분류해야 할 지를 알고 있으므로 주어진 데이터를 올바른 곳에 분류하게 된다.그러나 비지도 학습의 경우 데이터가 라벨링되어 있지 않기 때문에 비슷한 특징을 가진 데이터들 끼리 묶을 수는 있겠지만, 이 데이터가 무엇을 의미하는..
CNN model과 다양한 분야에 딥러닝을 적용한 논문들
CNN model과 다양한 분야에 딥러닝을 적용한 논문들
2017.04.14https://github.com/sbrugman/deep-learning-papers CNN 기반 DNNVGG구성이 간단해서 응용하기 좋다.https://arxiv.org/abs/1409.1556 GoogLeNet가로 방향에 폭이 있는 인셉션 구조.https://arxiv.org/abs/1409.4842 ResNet층이 매우 깊어서 gradient vanishing 문제를 해결하기 위해 스킵 연결을 도입한 것이 특징.https://arxiv.org/abs/1512.03385 지도 학습 ( supervised learning )사물 검출 ( Object Detection )cs231n lecture 8 Faster R-CNN ( Regions with Convolutional Neural Network ..
[*-nix] 패키지 관련 및 OS update & upgrade
[*-nix] 패키지 관련 및 OS update & upgrade
2017.04.13apt* family apt-get 대신 그냥 apt를 사용해도 된다. ```bash apt-get update package_name apt-get upgrade package_name ``` `` apt-get update`` : updates the list of available packages and their versions, but it does not install or upgrade any packages. `` apt-get upgrade`` : actually installs newer versions of the packages you have. After updating the lists, the package manager knows about available updates f..
[jQuery] CDN, Usage
[jQuery] CDN, Usage
2017.04.13jQuery보다 먼저 알았으면 좋았을 것들 jQueryjQuery는 주로 DOM, Ajax, 그리고 event와 effect를 처리하기 위해 사용하는데, effect같은 경우 css로 처리할 수도 있다. hover같은건 effect로 봐야하기 때문에 css로 처리하는 것이 좋고, onclick은 event로 봐야하기 때문에 JS로 처리해야 한다. effectcss로는 어려운 동적으로 페이지를 꾸미는 작업은 보통 jQuery Plugin을 활용해 처리하게 된다. DOM기존 JS로 DOM을 선택, 추가, 수정하려면 제한이 많은데, jQuery를 활용하면 복제, 이동 등의 작업도 간단히 처리할 수 있다. 그래서 DOM 관련 작업을 하다가 뭔가 복잡한 것 같으면 그냥 jQuery를 찾아보는게 더 빠를 수 있다...
쿠키(Cookie)와 저장소(Storage)
쿠키(Cookie)와 저장소(Storage)
2017.04.12Cookie와 Storage 모두 개발자 도구의 Application 탭에서 확인할 수 있다.Cookie는 EditThisCookie 크롬 확장프로그램을 사용하는 것이 편하다. Cookie서버에서 클라이언트가 쿠키를 설정하도록 지정할 수도 있고, 클라이언트에서 자체적으로 설정할 수도 있다.HTTP는 stateless protocol이므로 상태를 저장하기 위해 쿠키를 이용한다. 쿠키는 기본적으로 `` Name=Value`` 형태로 지정한다.다음 속성들도 가질 수 있다.Expires / Max-Age : 파기 날짜를 지정하지 않으면 브라우저가 종료될 때 쿠키가 삭제된다.Path : 입력하지 않으면 현재 도메인의 경로로 자동 입력된다. 지정한 경로의 하위에서만 해당 쿠키에 접근할 수 있다.Domain : 입력..
[Chrome] 개발자 도구 ( Developer Tools ) / 포터블
[Chrome] 개발자 도구 ( Developer Tools ) / 포터블
2017.04.12Elements페이지 내의 문서 객체와 관련된 속성을 실시간으로 확인할 수 있다.Console콘솔 로그를 확인할 수 있다. Esc를 누르면 팝업으로 창이 뜬다. console.logSources브라우저가 HTML을 해석하기 이전의 웹서버로부터 전송된 원본 source를 확인할 수 있다. 예를 들면 Elements 탭에서는 ``
딥러닝 ( DL, Deep Learning ) / 심층 신경망 ( DNN )
딥러닝 ( DL, Deep Learning ) / 심층 신경망 ( DNN )
2017.03.29딥러닝, 심층 신경망딥러닝은 사실상 층을 깊게 쌓은 심층 신경망(DNN)을 가리키는 말이다.여태까지는 오버피팅, 높은 시간 복잡도 때문에 층을 깊게 쌓는게 불가능했었지만오버피팅은 Dropout으로, 높은 시간 복잡도는 GPU의 병렬처리를 이용해 해결하여 층을 깊게 쌓는 것이 가능해져 주목받게 되었다. 여러 머신러닝 알고리즘 중에 신경망이, 그 중에 층을 깊게 쌓은 심층 CNN이 이미지 인식이나 자연어 처리 등에서 압도적인 성능을 보인다. 심층 신경망의 이점1. 신경망의 매개변수 수가 줄어든다.층을 깊게 했을 경우 더 적은 매개변수로 같거나 높은 수준의 표현력을 가질 수 있다. 가령 입력 데이터의 일부인 5x5 영역이 Conv 연산에 참여하려면, 층이 1개인 신경망에서 Conv layer의 필터의 크기는 ..
합성곱 신경망 ( CNN, Convolutional Neural Network )
합성곱 신경망 ( CNN, Convolutional Neural Network )
2017.03.27CNN, Convolutional Neural NetworkCNN은 합성곱(Convolution) 연산을 사용하는 ANN의 한 종류다.Convolution을 사용하면 3차원 데이터의 공간적 정보를 유지한 채 다음 레이어로 보낼 수 있다.대표적인 CNN으로는 LeNet(1998)과 AlexNet(2012)이 있다.VGG, GoogLeNet, ResNet 등은 층을 더 깊게 쌓은 CNN기반의 심층 신경망(DNN)이다. CNN의 네트워크 구조지금까지 다룬 신경망은 이전 계층의 모든 뉴런과 결합되어 있었고, 이를 Affine layer라고 불렀다.이런 식으로 이전 계층의 모든 뉴런과 결합된 형태의 layer를 fully-connected layer(FC layer, 전결합 레이어) 또는 Dense layer라고..
인공신경망 ( ANN ) #6-3 최적화 : 오버피팅 방지( weight decay, droupout ) / 하이퍼파라미터 최적화
인공신경망 ( ANN ) #6-3 최적화 : 오버피팅 방지( weight decay, droupout ) / 하이퍼파라미터 최적화
2017.03.26오버피팅( Overfitting )오버피팅은 훈련 데이터에만 지나치게 적응하여 시험 데이터에 제대로 반응하지 못하는 현상을 말한다.주로 다음 경우에 발생한다.매개변수가 많고 표현력이 높은 모델인 경우훈련 데이터가 적은 경우 Regularization오버피팅을 억제하기 위해서 다음과 같은 regularization 기법을 사용한다.regularization은 일반화 정도로 번역될 것 같다. 신경망이 범용성을 갖도록 처리하는 거니까. normalization, 정규화와는 다르다. weight decay ( L2 regularization )L2 regularization은 가장 일반적으로 사용되는 regularization 기법으로, 오버피팅은 가중치 매개변수의 값이 커서 발생하는 경우가 많기 때문에 가중치..