본문 바로가기

Programming/Deep learning29

lab 12-6 RNN with time series data 타임 시리즈 데이터라는 것은 시간에 따라서 값이 변하는 것입니다. 타이. 벨류가 될 것 입니다. 주식 시장의 시장의 가격. 오픈가 종가. 체결량. 상한가, 하한가 가격 데이터를 가지고 있을 것 입니다. 타임시리즈라고 할 수 있습니다. Many to one 이 되겠습니다. 7일 정도의 데이터 쭉 있고, 8일째 되는 값이 궁금한 것입니다. 데이터를 가지고 학습하게 됩니다. 생각 해 볼 점들 입력의 디멘션, 시퀀스의 길이는 얼마인지, 출력의 히든 사이즈는 얼마인지 알아야 합니다.아웃풋 1이 되겠습니다. 인풋은 5가 되고 시퀀스는 7이 되겠습니다. fc를 연결하면 원하는대로 만들 수 있습니다. 히든 사이즈를 원하는대로 설정하고 아웃풋을 도출해 냅니다. 마지막 것만 사용합니다. 그리고 풀리커넥티드의 최종 출력은 .. 2018. 5. 6.
lec 12 : NN의 꽃 RNN Sequence data 가 있습니다. 단어. 맥락을 이해하는 것. 단어를 이해한 다음에 다음 단어가 이해가 됩니다. 시퀀스 데이터가 되겠습니다. NN/CNN에는 시퀀스 데이터가 아닙니다. 시리즈 데이터들을 처리하기가 어렵습니다. 그래서 많은 사람들이 고민한 끝에 만들어 낸 것이 RNN 입니다. 실제로는 구현되는 형태가 있습니다. 어떠한 입력이 있고 각각 출력이 있습니다. 이전의 상태(state)가 다음 것에 영향을 미치는 것을 의미합니다. 어떤 시점에서 계산을 할때 이전의 상태의 값이 영향을 미친다. RNN에는 state 라는 개념이 있습니다. 스테이를 보면 이전의 데이터가 입력으로 사용됩니다. 바닐라 RNN (가장 기초가 되는 RNN) 알고리즘은 이것입니다. 각각의 웨이트를 만들어줍니다. 똑같은 형식.. 2018. 5. 6.
lec 6-1 : Softmax Regression Logistic regression 또는 Logistic classification. 리니어한 값을 가지고 출발했습니다. 더블유 엑스의 단점은 리턴하는 값이 실수의 값이 되기 때문에. 바이너리 클래스 0이나 1이냐에 접합하지 않았습니다. 그래서 생각한 방법이 이것이 하나의 z 라고 두고, g(z)라고 두고. 큰 값을 압축을 해서 0이나 1로 그 사이의 값으로 나누어주면 좋겠다 라고 생각을 했습니다. 그래서. z 에 축의 값이 커지더라도 0과 1사이의 값안에 들어왔으면 좋겠다라고 생각했습니다. 그것이 바로 Sigmod 라고 부르고나 로지스틱이라고도 불렀습니다.와이햇에 대해서 예측한 것입니다. 와이햇이 H(x) 입니다. 불류 해야 할 데이터가 있다고 가정합니다. 더블유를 학습한다 로지스틱 레그레션을 학습한다.. 2018. 5. 6.
lec 10-1 : Sigmod >>>> ReLU 변수를 선언하고. 이것을 연결하면 됩니다. L1, L2, ... 최종 가설은 이렇게 됩니다.좋지 않은 결과가 나온다.? 왜 이런일이 생길까요? 텐서보드를 통해서 보니. 코스트와 정확도를 살펴보았습니다. 2단 3단 정도의 경우는 잘 학습이 되는데, 9단 10단은 학습이 잘 안되는 것입니다. 이것이 문제였는데. 문제를 봅시다. 백 프로파게이션을 봅니다. 미분을 했는데. 전체를 하기 어려우니, 뒤에서부터 하나씩 해나갔습니다. 제일 처음 변수가 f에 a미치는 영향을 알고 싶습니다. 시그모이드를 통과하기 떄문에 1보다 작은 값이고 운이 좋지 않으면 0.01과 같이 굉장히 작은 값들이 곱해집니다. 그럼 이값들이 곱해지면 굉장히 작은 값이 됩니다. 최종적인 출력에서 2, 3단까지는 괜찮지만 뒤로 갈수록 곱해지는 항들.. 2018. 5. 6.
lec11-2:ConvNet Max pooling 과 Full Network 풀링 레이어는 샘플링이라고 생각하면 됩니다. 하나의 레이어만 뽑아낸다고 가정합니다. 이것을 사이지를 작게 만드는 것을 말합니다. 풀링이라고 말합니다. 하나의 예를 들어보겠습니다. Max pooling 이라고 봅시다. 이렇게 하면 총 몇개의 출력이 생길까요. 2*2의 아웃풋이 될 것 입니다. 그러면 값이 이렇게 있는데, 여러가지 방법이 있을 수 있습니다. 평균. 최대값, 최소값. 가장 많이 사용되는 것은 MAX POOLING 이라는 최대값을 뽑아내는 것입니다. 전체의 값들 중에 하나를 뽑기 떄문에 샘플링이라고 불리기도 합니다. 렐루는 벡터를 렐루라는 펑션에 입력을 하게 되면 쉽게 되는 것입니다. 풀링은 샘플링 하는 방법입니다. 이런 것들을 원하는 순서대로 쌓으면 됩니다. 그리고 마지막 층에 이제 FC를 하.. 2018. 5. 6.
lec 9-1 : XOR 문제 딥러닝으로 풀기 / lec 9-2 : backpropagation Multiple logistic regression units.No one on earth had found a viable way to train. Forward propagationCan you find another W and b for the XOR?XOR 을 하나의 로지스틱 회귀로 풀 수 있는가. and, or 는 쉽게 풀 수 있습니다. 그래프로 나타내서. xor 은 초창기 NN 연구자들에게 절망을 주었던 문제입니다. 하나의 로지스틱 회귀로는 문제를 절대로 풀 수 없다는 것이 수학적으로 증명되었습니다. 하나가 아니라 두개 또는 3개를 합치면 풀 수 있습니다. 그런데! 여러 가지로 겹치면 풀 수는 있지만 각각의 복잡한 네트워크에 들어있는 weight 와 bias를 학습 할 수 있는가? 이것은 불가.. 2018. 5. 6.
LAB 08 : Tensor Manipulation RANK, SHAPE, AXIS 을 이렇게 쓸 수 있습니다. 슬라이싱 : 콜론을 이용합니다. 이렇게 1차원에서 어레이를 쉽게 볼 수 있고, 원하는 형태를 가져다 사용할 수 있수 있습니다. 2차원 어레이도 이와 같은 원리로 동작합니다. 데이터를 다루는 키워드 쉐이프, 랭크, 엑시스. shape 이 달라도 연산이 가능한 것이 브로드 캐스팅입니다. 디멘션도 추가할 수 있습니다. 스퀴즈도 있습니다. 원핫 개념도 있습니다. 캐스팅, 스택 쌓는다는 의미입니다. https://www.youtube.com/watch?v=ZYX0FaqUeN4&index=23&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm 2018. 5. 5.
lec 08-1 : 딥러닝의 기본 개념 : 시작과 XOR문제 뇌가 굉장히 복잡하게 연결되어 있다. 단순한 동작원리가 있습니다. 어떤 인풋이 있고. 신호의 양이 달라집니다. 엑스곱웨이트 그리고 바이어스가 들어오더락. 그리고 활성화가 되고. 그 이상이 되면 활성가가 되더라. 이 정도는 기계적 수학적으로 만들 수 있겠다. 이런 형태의 값을 모으는 것이 있다고 가정합니다. 이런 단순한 형태로 만들 수 있겠다. 된것입니다. 1 아니면 0. 여러개를 모은 다면 동시에 여러개를 출력할 수 있다. 학습을 하기 위한 다이얼을 돌려서 이렇게 웨잇을 조정합니다. 특정한 인풋 값들에 대해서 어떤 형태의 출력을 내게 됩니다. 이것을 가지고 인공지능이라고 생각했고. 많은 사람들이 관심을 끌자 허황된 약속하기 시작합니다. 많은 사람들의 관심을 끌자. 연구하는 분들이 허황된 약속을 하게 됩니.. 2018. 5. 4.
lab 07-2 : Meet MNIST Dataset 한자리씩 따지면 784자리가 됩니다. 그리고 None 은 우리가 원하는 갯수 만큼을 넣을 수 있다는 것입니다. 소프트 맥스에서 원핫 인코딩을 사용했습니다. 10개의 출력을 나타내게 됩니다. 이런 형태의 처리 해야 하는데. 복잡하기 때문에. 텐서플로에서 임포트를 하고, 디렉토리를 지정해줍니다. 이렇게 해서 데이터를 읽었으면 트레이닝 하고 넷스트 100개 하면, 100개의 엑스와 와이 트레닝 데이터가 얻어집니다. 원핫을 트루두 두면 원핫으로 처리한다는 것을 알 수 있습니다. 클래스가 10개가 되니다. 엑스와 와이가 784가 왜나왔는지. 몇개 출력인가를 따라서 정해집니다. 엑스 와이가 정해졌으면 간단한 소프트맥스 클래스 파이어를 사용합니다. 더블유의 쉐이프를 신경씁니다. 그리고 바이어스도 신경씁니다. 입력이 .. 2018. 5. 4.
Training/test dataset, Learning rate, normalization (LAB) 테스트 셋이라는 것은 모델의 입장에서는 한번도 본적이 없는 것입니다. 데이터 셋을 가지고 모델을 평가하는 것입니다. 이것이 가장 공정한 것입니다. 엑스 와이 플레이스 홀드, 웨잇과, 바이어스를 선언합니다. 하이퍼시스, 코스트, 옵티마이저는 동일합니다. 예측하는 것이 있습니다. 그리고 이것이 마는지 아닌지를 측정합니다. 그리고 정확도를 구합니다. 이런 방법은 동일 합니다. 어떤 값을 던져주는 가에 따라서 테스트 데이터를 던져서 테스트 할 수 있습니다. 세션을 열고 베리어블을 초기화하고. 엑스 데이터 Learning rate:너무 클때랑 너무 작을때를 나타냅니다.학습이 되지 않고, 발산이 되는 경우가 존재합니다. 그리고 너무 작은 값이 있다면 지역 최소값에 갇히게 됩니다. 학습이 안될 수도 있습니다. 로컬 .. 2018. 5. 4.