본문 바로가기

차이

기본 RNN과 LSTM 비교 【5】RNN 기본 다지기 / 실습으로 익히는 순환신경망 기본 RNN과 LSTM 비교 여기까지 RNN과 LSTM을 자세히 살펴 보았다. 두 순환신경망의 구조를 비교해보자. 아래 그림을 보자. 가장 간단하게 두 구조를 구별하는 방법은 타임스텝이 진행될때 한 셀에서 다음셀로 전달되는 정보의 개수를 확인하면 된다. 즉 위 그림에서는 셀과 셀 사이의 화살표 개수를 확인하면 되는것이다. 단기 기억 뿐인 RNN의 경우 다음 셀로 전달 되는 정보는 역시 바로 직전 타임스텝의 정보일 뿐이다. 그래서 그림에서 하나의 화살표만 볼 수 있다. 그러나 LSTM은 이름에서 보듯 Long-Short Term Momory 이므로 장기와 단기 기억이 모두 존재한다. 그러므로 구조 그림에서 두개의 화살표를 확인할 수 있다. 위 화살표는.. 더보기
선생님, Padding은 뭔가요? 밸리드 패딩 / 풀 패딩 / 세임 패딩 【2】CNN_합성곱 신경망 / Convolutional Neural Networks의 이해 선생님, Padding은 뭔가요? 밸리드 패딩 / 풀 패딩 / 세임 패딩 패딩(padding)의 사용은 앞에서 언급했듯이 출력 크기를 보정하기 위해 사용하며 ‘충전재’라는 의미처럼 입력 데이터의 사방을 특정 값으로 채우는 것을 말한다. 일반적으로 특정 값은 그냥 0을 사용하기에 제로패딩(zero padding)이라고도 한다. 아래의 사진은 (4,4)인 입력데이터에 폭이 1 pixel인 패딩을 적용하여 (6,6) 크기가 된 그림이다. 밸리드 패딩 (valid padding) 우리가 지금까지 다루었던 즉 패딩을 추가 하지 않은 형태는 엄밀히 말하면 밸리드 패딩(valid padding)을 적용했다고 한다. 이렇게 밸리.. 더보기
비지도학습 (Unsupervised Learning) 【1】Deep Learning 시작하기_머신러닝의 종류 비지도학습 (Unsupervised Learning) 비지도 학습은 지도학습과 다르게 지도해줄 조력자의 도움 없이 컴퓨터 스스로 학습하는 형태를 말한다. 비지도 학습의 데이터는 x, y 가 존재하는 지도학습의 데이터에서 라벨 y 가 없는 형태이다. x 와 y의 관계를 파악했던 지도학습과는 달리 비지도 학습은 x들 간의 관계를 스스로 파악하는데 이는 학습에 사용된 데이터들의 특징을 분석해 그 특징별로 그룹을 나누는 것을 의미한다. 이를 통해 새로운 데이터를 입력 받으면 분류해 놓은 그룹 중 그 특징이 비슷한 그룹에 포함 시킨다. 간혹 비지도 학습과 지도학습의 분류를 혼동하는 경우가 있어 다음의 표를 보며 정리 해보자. 가장 두드러진 차이는 학습 데이터.. 더보기
[머신러닝] GRU란? 케라스로 GRU 은닉층 추가하기 (코드) 1. GRU란? GRU(Gated Recurrent Unit)란 LSTM과 유사한 구조를 가지는 모델을 말하는데요, LSTM의 장기 의존성 문제에 대한 해결책을 유지하면서 은닉 상태를 업데이트하는 계산을 감소시킨 알고리즘을 말합니다. 또한 GRU의 가장 큰 특징은 출력게이트, 입력게이트, 삭제게이트를 가진 LSTM과 달리 업데이터 게이트와 리셋 게이트만 갖고 있다는 점입니다. LSTM과 GRU가 비슷한 구조를 가지고 있지만 어느 게 더 좋다고 말할 수는 없는데요, 다만 GRU에서 매개변수의 양이 적기 때문에 데이터의 양이 적을 땐 GRU를 사용하는 것이 좋고, 데이터의 양이 많다면 LSTM이 적절할 수 있습니다. 2. 케라스로 GRU 은닉층 추가하기 한편, 케라스를 이용해 GRU 은닉층을 추가하고 싶다면.. 더보기
[머신러닝] 지도학습과 비지도학습의 차이 및 알고리즘 종류 머신러닝 알고리즘에는 크게 지도학습과 비지도학습, 그리고 강화학습으로 구분되는데요, 지도학습과 비지도학습에 대해서 간단하게 살펴보도록 하겠습니다. 1. 지도학습(Supervised Learning) 먼저, 지도학습은 학습 데이터에 대한 올바른 input data와 output dataset으로 학습으로 이루어지는데요, 에러를 감소시키도록 학습이 이루어집니다. 즉, 지도학습은 weight(가중치) 값을 바꿔가며 학습을 통해 나온 output data와 올바른 output data와의 차이를 줄이는 방향을 학습됩니다. 이러한 지도학습에는 다양한 알고리즘이 있는데요, Regression, Decision Trees, Random Forests, Classification 등이 있습니다. 여기서 Regressi.. 더보기
[웹크롤링] 자바스크립트로 이루어진 페이지와 html로 이루어진 페이지를 크롤링 하는 코드가 다른가요? 1. html로 이루어진 페이지 html로 이루어진 페이지를 크롤링하는 것은 자바스크립트로 이루어진 페이지를 크롤링하는 것과 다르게 코드를 작성해야 하는지 궁금하실 수 있는데요, html로 이루어진 페이지와 자바스크립트로 이루어진 페이지를 크롤링하는 방법은 약간 다르답니다! html로 이루어진 경우 간단하게 url을 찾고 BeautifulSoup()를 이용하여 본문을 가져오면 되는데요, 기본적으로 다음과 같이 코드를 입력하면 됩니다. from bs4 import BeautifulSoup import requests url = "https://www.naver.com/" resp = requests.get(url,params) soup = BeautifulSoup(resp.content, 'lxml') 2.. 더보기
[파이썬] 튜플(Tuple) 이것만 알자! 1. 튜플(Tuple)과 리스트(List)의 차이는? 튜플(Tuple)은 리스트와 같이 여러 개의 데이터를 담아주는 자료형 구조로, 리스트와 비슷한 기능을 합니다. 하지만 리스트는 '[', ']'를 사용하는 반면, 튜플은 아래 코드와 같이 '(', ')'을 사용합니다. list1 = [1, 2, 3, 4, 5] tuple1 = (1, 2, 3, 4, 5) 한편, 튜플은 리스트보다 처리 속도가 더 빠르다고 하는데요, 데이터가 엄청 많을 때 튜플의 처리 속도가 더 빠르다는 것을 확인할 수 있습니다. 또한, 리스트는 데이터를 추가하거나 수정 및 변경이 가능한데요, 튜플은 처음에 지정하고 그 이후에 수정 및 변경이 불가능하답니다. 따라서 튜플의 원소를 수정하려고 하면 아래와 같이 에러가 나는 것을 확인할 수 있.. 더보기