본문 바로가기

분류 전체보기465

[실습] Building a RNN step by step(Basic RNN, LSTM) 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 다섯 번째 강의 Recurrent Neural Network를 듣고 정리한 내용입니다. (Week 1) RNN 1주차 실습은 Simple RNN, LSTM, GRU를 Step by step으로 구현해보는 것입니다. 그리고 다음 실습에서 이렇게 구현한 함수들을 통해서 Music generator를 구현해보도록 할 예정입니다. 실습에 들어가기 전에 Notation부터 설명하겠습니다. 위첨자 [l]은 \(l^{th}\) layer를 의미함 위첨자 (i)는 \(i^{th}\) sample data를 의미함 위첨자 는 \(t^{th}\) time-step을 의미함 아래첨자 i는 벡터의 \(i^{th}\) 요소를 .. 2020. 12. 21.
Recurrent Neural Networks 2 (GRU, LSTM, BRNN) 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 다섯 번째 강의 Recurrent Neural Network를 듣고 정리한 내용입니다. (Week 1) [Gated Recurrent Unit(GRU)] 앞서 Basic RNN이 어떻게 동작하는지 살펴보았고, 이번에는 GRU라는 조금 더 긴 시퀀스를 잘 캡처(장기의존성 문제)하고, Vanishing Gradient 문제를 해소할 수 있는 GRU에 대해서 살펴보도록 하자. GRU는 다음에 나오는 LSTM과 유사하지만, 조금 더 간략한 구조를 가지고 있다. GRU를 간단하게 표현하면 위와 같다. 여기서 새롭게 나타나는 c는 memory cell을 의미하며 이전 정보들이 저장되는 공간이다. 이전 정보가 \(c.. 2020. 12. 21.
Recurrent Neural Networks 1 (Basic of RNN model) 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 다섯 번째 강의 Sequence Models를 듣고 정리한 내용입니다. (Week 1) [Why sequence models] 다섯번째 강의에서는 Sequence model에 대해서 배운다. 딥러닝에서 가장 흥미로운 분야 중 하나이며, Recurrent Neural Network(RNN)같은 모델은 음성 인식, 자연어 처리(NLP) 영역에 영향을 끼쳤다. 아래는 시퀀스 모델이 사용되는 몇 가지 예시들이다. 음성 인식(Speech recognition)의 경우에는 Input X인 오디오가 Text output Y에 매핑된다. 입력과 출력 모두 시퀀스 데이터인데, X는 시간에 따라 재생되는 음성이며, Y는 .. 2020. 12. 20.
Rabin-karp(라빈 카프) 알고리즘 두번째로 살펴볼 문자열 탐색 알고리즘은 Rabin-Karp 입니다. 라빈카프 알고리즘은 해싱(Hashing)을 사용해서 문자열에서 특정 패턴과 일치하는지 찾아주는 알고리즘입니다. 기본적인 아이디어는 (1)비교할 문자열과 패턴을 Hash function을 통해 해시값으로 변환하고, (2)해시값의 비교를 통해서 문자열이 일치하는지 확인하는데, 일치하지 않으면 다음 문자열로 넘어가고, 일치한다면 해당 문자열과 패턴의 1:1 매칭을 통해서 최종적으로 일치하는지 확인합니다. 즉, 해시값이 일치하면 문자열이 같다라고 판단할 수 있는데, 이는 해시 충돌(hash collison)이 없는 경우에 해당하긴 하지만 대부분 유효하다고 볼 수 있으며, 혹시나 해시값이 같지만 다른 문자열인 경우를 대비해서 해시값이 일치하는 경.. 2020. 12. 17.
Gradient Descent Gradient descent Gradient descent(이하 GD)는 함수 최적화(optimization) 알고리즘의 하나이며, local minimum을 찾기 위해 미분의 개념을 적용한 알고리즘입니다. 자세히 살펴보기 전에 직관적으로 이야기해보자면, 산의 정상을 향해서 오르거나, 깊은 골짜기로 내려가는 경우에 현재 위치에서 경사가 가장 가파른 방향으로 오르거나 내려가다보면 정상(local maximum)에 다다르거나 가장 깊은 골짜기(local minimum)로 내려갈 수 있습니다. 이러한 개념이 바로 Gradient Descent입니다. (local maximum, 즉 정상을 향해서 진행하는 것은 Gradient ascent라고 합니다.) - Gradient gradient는 각 변수의 일차 편.. 2020. 12. 16.
[Tensorflow] Neural Style Transfer 튜토리얼 (tensorflow v2.3.0) Tensorflow 튜토리얼에 있는 Neural Style Transfer를 따라서 실습을 진행해보겠습니다. www.tensorflow.org/tutorials/generative/style_transfer?hl=ko tf.keras를 사용한 Neural Style Transfer | TensorFlow Core Note: 이 문서는 텐서플로 커뮤니티에서 번역했습니다. 커뮤니티 번역 활동의 특성상 정확한 번역과 최신 내용을 반영하기 위해 노력함에도 불구하고 공식 영문 문서의 내용과 일치하지 않을 수 www.tensorflow.org 사용될 이미지는 케라스 창시자에게 배우는 딥러닝 Github에서 제공하는 이미지를 사용했습니다. github.com/rickiepark/d.. 2020. 12. 15.
Activation Function (Feat, non-linearity 비선형) 딥러닝 학습을 공부하다보면 activation function(활성 함수)라는 것이 나오고, 아무 생각없이 이런 거구나 하고 넘어갔었던 것 같아서, 조금 정리해보려고 합니다. 인공신경망은 단일 퍼셉트론이라는 기본 개념으로부터 출발했는데, 위 이미지는 신경망이 어떻게 신호를 전달하는지 보여주고 있습니다. 여러 개의 신호(\(x_0, x_1, x_2\))가 들어와서 출력을 전달하고 있는데, 이때, 전달하는 출력 신호의 세기(강도)를 정하는 것이 바로 activation function이라고 할 수 있습니다. activation(활성화)라는 단어에서 알 수 있듯이 입력 신호들의 조합이 뉴런의 활성화를 일으키는지 정하는 역할이라고 볼 수 있죠. 그리고 activation function에 대해서 공부하다보면 n.. 2020. 12. 14.
[Pytorch][Kaggle] Cats vs. Dogs Classification (torch version : 1.7.0) 지난번 tensorflow에서 Cats vs. Dogs Classification에 이어서, Pytorch를 사용해서 해당 문제를 구현해보도록 하겠습니다. 2020/12/04 - [ML & DL/tensorflow] - [Tensorflow][Kaggle] Cats vs. Dogs Classification [Tensorflow][Kaggle] Cats vs. Dogs Classification www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition Dogs vs. Cats Redux: Kernels Edition Distinguish images of dogs from cats www.kaggle.com 딥러닝 연습으로 K.. 2020. 12. 7.
[Tensorflow] 분류에 사용되는 activation과 loss function(softmax/log_softmax/categorical_crossentropy) (tensorflow v2) Tensorflow로 Classification을 수행하면, 모델 output에서 activation 함수로 sigmoid나 softmax를 적용하게 됩니다. 그리고 loss는 이진 분류는 binary_crossentropy와 다중 분류는 categorical_crossentropy를 자주 사용합니다. 이번 글에서는 tensorflow에는 softmax/log_softmax를 살펴보고, categorical_crossentropy가 어떻게 수행이 되는지 살펴보기 위해서 실험을 해보았습니다. (Pytorch에 대한 내용은 아래 게시글을 참조하시기 바랍니다.) 2020/12/02 - [ML & DL/pytorch] - [Pytorch] softmax와 log_softmax (그리.. 2020. 12. 5.
[Tensorflow][Kaggle] Cats vs. Dogs Classification(수정 : 2020-12-07) www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition Dogs vs. Cats Redux: Kernels Edition Distinguish images of dogs from cats www.kaggle.com 딥러닝 연습으로 Kaggle의 Dogs vs. Cats Classification을 진행해보겠습니다. 기존 사이트는 www.kaggle.com/c/dogs-vs-cats 이지만, 현재 결과 제출이 되지 않는 상태이기 때문에 위 사이트에서 진행하였습니다. 학습 모델은 간단한 CNN 모델과 Pre-trained된 VGG16 모델을 사용해서 진행해보도록 하겠습니다. 1. Data 전처리 우선 training에 사용되는 데이터는 총 25,000의 고양이와 개의 이.. 2020. 12. 4.