일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리눅스
- Generalized forward
- Linux
- 펌웨어
- Transport layer
- demultiplexing
- LED 제어
- 운영체제
- 밑바닥부터 시작하는 딥러닝
- file descriptors
- 3분 딥러닝
- 신경망 첫걸음
- RDT
- function call
- TensorFlow
- LED
- Switch
- Network layer
- 스위치
- 모두를 위한 딥러닝]
- GPIO
- Router
- 신경망
- 디바이스 드라이버
- Class Activation Map
- 텐서플로우
- 딥러닝
- Interrupt
- 모두를 위한 딥러닝
- 인터럽트
- Today
- Total
목록공부 기록/모두를 위한 딥러닝 (Basic) (36)
건조젤리의 저장소
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 시간에 따라 변하는 데이터를 Time series data라고 한다. 시간에 따른 주가 데이터를 가지고 있는 데이터 셋을 이용하여 주가 예측을 수행해보자. Many to one 구조를 사용할 것이다. 일주일 간의 데이터를 넣고 그 다음날의 주가를 예측하는 구조이다. Input길이는 5, seqence길이는 7, Output길이는 1임을 알 수 있다. 전체 데이터의 값의 분포가 들쑥날쑥하게 되어 있으므로 MinMaxScaler를 이용하여 조정해준다. Y의 값은 Close값만 이용할 것이다. 데이터 중 70%를 학습에 사용할 것이다. 우리는..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 고정 길이의 데이터가 아닌 가변 길이의 데이터를 넣기 위한 기존 방법은 빈 자리에 Pad라는 특별한 기호를 사용하여 신경망이 이 부분은 없는 것으로 스스로 판단하길 유도하였다. 하지만 이 자리에도 가중치값이 존재하기 때문에 Loss 함수를 최적화 하기 어렵게 만들었다. 이를 해결하기 위해 Tensorflow는 각각 배치에 sequence길이를 입력하게 하여 출력값도 이와 동일한 길이를 출력하게 하였다. (나머지 부분은 0으로 만든다) sequence길이에 따라 출력되는 결과를 살펴보면, 설정한 길이 외의 결과값은 모두 0이 된 것을 볼 ..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 앞의 내용에서는 길이가 매우 긴 문장의 경우 결과값이 제대로 나오지 않는다고 하였다. 이를 해결하기 위해서는 어떻게 해야할까? RNN구조를 더 쌓아 깊은 구조로 만들게 된다면 성능이 더 좋아질 것이다. MultiRNNCell 명령어를 이용하면 여러개의 층을 쌓을 수 있다. CNN구조의 끝 부분에는 FC 레이어가 존재한다. 이를 RNN에도 적용시켜보자. softmax를 RNN에 붙여 결과를 출력하는 형태이다. 이를 위해서 RNN의 출력 결과를 reshape를 통해 나열한 뒤 FC 구조를 통과시킨다, 이후 다시 원래의 모양으로 되돌려준다. ..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 위와 같은 language 모델을 구현해보자. RNN cell을 생성할때 원하는 종류를 선택할 수 있다. cell을 생성하였으면 cell을 동작시키는 코드가 필요하다. 총 5개의 문자로 이루어진 단어이므로 hidden size는 5로 설정한다. 마찬가지로 input_dim또한 5로 설정한다. 하나의 단어만 학습할 것 이기 때문에 batch 크기는 1로 설정한다. 단어에서 마지막 부분은 들어갈 필요가 없으므로 6으로 설정한다. one_hot 형식으로 데이터를 만든다. * x_data는 여기서 아직 쓰이지 않음 (다음장 참고) cell을 생..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io Tensorflow에서 RNN을 사용하기 위해서는 1. Cell을 만듬 (출력크기 정하기) 2. 셀을 구동시켜 출력하기 (cell과 입력 데이터를 넣음, output: 출력 / _states: 마지막 상태값) 셀의 종류는 다양하고 우리가 원하는 셀을 선택하여 선언하면 된다. hidden_size는 출력값의 크기를 나타낸다. 하나의 입력값을 넣어 출력한 결과이다. hidden_size의 값과 출력값의 크기가 동일하다. 5개의 sequence를 가진 데이터를 입력하면 출력되는 결과이다. 배치 처리도 입력 데이터만 수정하면 되기 때문에 간단하다.
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 하나의 단어로는 문맥을 파악할 수 없다. 이전 단어와의 조합을 통해 우리는 문장이 의미하는 바를 알 수 있다. 연속적인 데이터들의 의미를 파악하기 위해 기존의 NN/CNN 구조를 사용하는 것은 어려운 일이다. 따라서 이전의 연산 결과가 현재의 연산 결과에 영향을 미치는 신경망 구조를 만들게 되었는데, 이를 RNN 이라고 한다. RNN의 구조는 위의 그림과 같이 풀어서 나타낼 수 있다. 연속적인 데이터들이 입력으로 들어가게 되고, 현재의 입력값에 대한 출력이 과거의 연산값에 영향을 받는 구조이다. 위의 그림은 RNN의 연산식을 나타낸 것이..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 컨볼루션 연산을 테스트 하기 위한 입력 이미지를 만들었다. 모든 요소가 1이고 2x2크기를 갖는 필터를 컨볼루션 연산을 수행하면 2x2크기의 출력값이 나오게 된다. Padding을 적용하게 되면 입력 크기와 출력 크기가 동일하게 된다. 여러개의 필터를 사용하여 출력 결과의 갯수를 늘릴 수 있다. 최대 풀링을 적용하여 값을 출력한다. MNIST 이미지에서 컨볼루션 연산을 수행해보자. 5개의 필터를 적용하여 나온 출력 결과들이다. 최대 풀링을 적용한다면 위와 같은 결과가 나오게 된다. 간단한 CNN 네트워크를 구성해보자. 첫번째 레이어의 구..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 강의에서 쓰인 자료 출처: http://cs231n.stanford.edu/ CNN의 등장을 알린 네트워크이다. 컨볼루션 필터의 크기는 5x5이고 stride는 1이다. 풀링 레이어를 사용하였다. Normalization layer는 최근에는 잘 사용되지 않는 레이어이다. ReLU를 처음 사용한 네트워크이다. 7개의 네트워크를 사용하여(앙상블) 성능을 향상하였다. 인셉션 모듈이라는 특이한 레이어 구조를 가지고 있는 네트워크이다. 다른 네트워크와 비교하여 네트워크가 상당히 깊어졌다. 네트워크가 깊어지면 학습이 어려워지게 되는데 ResNet..