일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- string 함수
- 알고리즘 공부방법
- iOS14
- Django의 편의성
- 연결요소
- 입/출력
- getline
- 시간복잡도
- 엑셀
- 구조체와 클래스의 공통점 및 차이점
- 입출력 패턴
- correlation coefficient
- double ended queue
- UI한글변경
- scanf
- 백준
- c++
- Django Nodejs 차이점
- Django란
- vscode
- 표준 입출력
- k-eta
- 자료구조
- 이분그래프
- 장고란
- 매크로
- 2557
- string 메소드
- EOF
- 프레임워크와 라이브러리의 차이
- Today
- Total
Storage Gonie
# Basic derivative(기본 미분)- 델타엑스를 0에 가까운 아주 작은 값으로 줄때, x는 이만큼 변하는데 f는 얼마나 변하는가. 즉, 순간 변화율을 의미하고 이것이 '기울기'이다.ex) 여기서 x를 0에 가까운 아주 작은 수로 수렴시키지만, x = 0.01이라고 가정하고 미분을 해보자.# Partial derivative(부분미분) - 다른변수를 상수로 생각하고 미분하는 것.- 거꾸로 뒤집어진 e를 partial이라고 부름.- (ㅁ+ㅁ)'는 ㅁ' + ㅁ'을 통해 구할 수 있다. # Chain rule- 복잡한 형태의 미분을 구할때 는 아래와 같이 각각을 미분한 것을 서로 곱해줌으로써 구할 수 있다.
# XOR 문제를 Neural network로 어떻게 풀 수 있는지 확인- 단, weight와 bias를 학습시키는 방법은 다다음장에서 배움 1) 하나의 유닛 or 모델로는 XOR 문제를 풀 수 없다는 것을 Minsky교수가 수학적으로 증명하였고, XOR문제는 풀 수 없는 것이라 믿는 계기가 되었음. 2) Minsky교수는 유닛을 2개, 3개 붙이면 XOR 문제를 풀 수 있다고 하였는데, weight, bias를 학습시킬 방법을 아는 사람이 아무도 없다고 하였음.https://cs231n.github.io/convolutional-networks 3) 지금은 weight, bias를 학습시키는 대신, 값을 잘 초기화 시켜서 한번 XOR 문제를 풀어보자- 네모난 박스에서는 xw+b의 연산이 일어나고 이 결..
* 키워드 : slicing, shape, rank, axis, matmul, broadcasting, reduce_mean, reduce_sum, argmax, reshape, squeeze, expand_dims, one_hot, cast, stack, ones_like, zeros_like, zip #-*- coding: euc-kr -*-# https://www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = t..
* 역사에 대한 강의인데 나오는데 별로 중요한 내용은 아니었다. # 1969년도, Neural network의 첫번째 침체기- Marvin Minsky는 지금의 방법으로는 XOR문제를 풀 수 없다는 것을 수학적으로 증명함.- 단, 한개의 Layer로는 할 수 없고 여러개로 합친 MLP(Multi Layer Perceotron)을 이용하면 풀 수 있다고 말함.- 그러나 각각의 Layer에 있는 weight과 bias를 학습시킬 수 있는 방법이 없다고 함. # 1974 - 1982년도- Paul Werbos가 자기 박사 논문에서 Backpropagation 하는 방법을 썼음.- 그러나 이 당시 분위기가 여전히 냉랭하여 이걸 내도 아무도 관심을 주지 않았음.- 그리고 1970년대 후반에 Marvin Minsk..
# MNIST data 형태- 28x28개의 네모칸에 숫자가 지나간 부분에 대해서 어두운 정도가 값으로 들어가 있음.- X 는 28x28 = 784개의 features로 이루어 져있고 ex) [0, 0, ... , 0.932111, 0.212163, 0, 0]- Y 는 one-hot 벡터로 0~9 를 나타내는 벡터로 이루어져 있다. ex) [0, 0, 0, 0, 0, 1, 0, 0, 0, 0] # 몇가지 용어- epoch : 전체 Training set을 한번 돈 것을 1epoch이라고 한다.- batch_size : 전체 Training set 즉, 1epoch은 너무 양이 많으므로 이를 쪼개서 사용하는 크기가 batch_size이다.- iterations : 반복 횟수- Q. 1000개의 traini..
# Learning rate이 너무 커도 안되고 너무 작아도 안되는 이유- 너무 크면 발산을 해버리고- 너무 작으면 로컬 미니멈에서 빠져나오지 못하거나 너무 느리게 수렴하게 되는 현상이 발생한다. # Training set으로 훈련시킨 뒤 Test set으로 테스트 해보는 예시(분류문제)- 여기서는 분류문제를 다루므로 Training set에 대한 훈련이 다 끝난 뒤, Test set에 대한 예측 Accuracy를 따져본다. # Lab 7 Learning rate and Evaluation import tensorflow as tf tf.set_random_seed(777) # for reproducibility x_data = [[1, 2, 1], [1, 3, 2], [1, 3, 4], [1, 5, 5..
# Model의 성능 평가방법- Training / Testing set 두개로 나누는 경우도 있고, Training / Validation / Testing set 세개로 나누는 경우도 있다.- case1) 2개로 나누는 경우 : Training set으로 훈련시킨 뒤, Testing set으로 오차값(선형값예측) 또는 Accuracy(분류예측)를 확인한다. - case2) 3개로 나누는 경우 : Training set으로 훈련시킨 뒤, Validation set으로 learning rate, 람다를 여러번 튜닝한다. 그 후 최종적으로 Testing set으로 오차값(선형값예측) 또는 Accuracy(분류예측)를 확인한다.- Validation set을 이용하는 방법은 실전 평가 전에 모의고사 단계가 ..
# 적절한 learning rate 선정 방법- 주어진 데이터에 따라 적절한 값이 다르기 때문에 - 0.01로 줘보고 수렴이 너무 느리면 이 값보다 좀 더 키워보고 발산을 한다하면 이 값보다 좀 더 줄여봐라 # Gradient Descent를 위해 feature데이터에 대해 전처리를 해줘야 하는 경우와 방법- learning rate를 적절하게 준거 같은데 cost값이 발산하거나 이상동작을 보여주면 데이터중에 값의 차이가 크게 나는게 있는지 확인하고 있다면 데이터에 다음의 방법을 적용할 수 있다.- 1. 데이터의 중심이 0으로 오게 바꿔주는 zero-centered 혹은- 2. 전체 데이터의 값이 어느 범위안에 모두 들어가게 하는 normalize# Normalization방법 중에서 Standardiz..
# Softmax 구현방법 (라이브러리를 이용하는 방법)- tf.nn.softmax_cross_entropy_with_logits(logits= , labels= ) 를 이용하면 크로스 엔트로피를 구하는 공식을 사용할 수 있다.- 여기서 주의할 점은 Y는 label로 1개의1, 여러개의 0으로 이루어진 one_hot 벡터 이어야 한다.- 그러면 각각의 logit에 대한 오차값이 결과로 나오고 그것을 tf.reduce_mean해주면 전체에 대한 평균오차값이 나온다. # Y label을 one-hot 벡터로 변환하는 방법- tf.one_hot()을 사용한 뒤 tf.reshape을 이용함(* tf.one_hot()은 입력으로 rank가 N 인 것을 넣어주면 rank가 N+1인 것을 결과값으로 내주므로 이를 다..
# Softmax Classifier에서 Softmax함수를 텐서플로우에서 구현하는 코드- Logistic classifier의 XW + b 의 값을 먼저 "tf.matmul(X,W)+b" 로 표현하고- 위 식의 값을 Softmax 함수에 통과시킨 것을 "hypothesis = tf.nn.softmax(tf.matmul(X,W) + b)" 로 표현한다.- Softmax 함수에 통과시키는 값을 logit이라 한다. # Softmax Classifier에서 Cost와 Gradientdescent를 텐서플로우에서 구현하는 코드- Cost는 -L* log(hypothesis)를 다 더한뒤 개수로 나눠준것.- Gradientdescent능 Cost함수를 그냥 최소화 시켜주는 W와 b 매개변수들을 찾아가는 것임. ..