목록강의정리/딥러닝 (23)
코딩공작소
** 초기값을 잘 정해주어야한다. RBM을 통해서 초기화를 시켜준다. 두개씩의 네트워크를 이용해 초기화값을 잘 정해준다. (RBM) 더 간단한 초기화방법이 있다. 그 이후, fan in 과 fan out의 수에 따라서 초기값을 정해준다. (Xavier , MSRA, LSUV ...) Overfitting : 특정한 training set에만 적용되는 딥러닝 (응용력이 없음 실전에 사용불가) : More training date . : Regularization NN에서는 다른 하나가 더있다. Drouput : 뉴럴 네크워트에서 Overfitting을 예방하기 위한 방법.랜덤하게 어떤 Neurons들을 제거하는 것. 한단을 더 만들어서 하나의 레이어를 만들고 랜덤하게 dropout시킨다.학습할때만 drop..
주의해야 할점은 W의 크기를 잘 정해줘야함 2단으로 바뀐 코드. TensorBoard : 값들의 그림을 바로 그려줄수가 있다. (그래프)
Sigmoid함수 . ( S ) 3개의 네트워크를 통해서 XOR를 해결할 수 있다. 하나의 NN 다른 조합의 W,b의 값이 존재 할까 ? How can we learn W1, W2 b1, b2 from training data !? Backpropagation w,x,b가 f에 미치는 영향을 알아야 한다. w,x,b의 각각의 미분값이 f에 영향을 미친다. ** Back propagation ( chain rule ) a가 f에 미치는 영향 ( f = a + b ) 궁극적으로 구하고 싶은 값은 x가 g에 미치는 영향을 알아야한다.g = x * y --> tensorflow에서는 각각의 연산과 과정들을 그래프로 만든다 : 각각을 미분(back propagation)을 위해
** shape 구하는법 처음의 ' [ '의 갯수를 센다 -> ' [ '의 갯수만큼의 ( ? , ? ) 이다. 원소의 개수를 센다 -> ( ? , 개수 )가장안의 []가 몇개인지를 센다 -> ( 개수 , ㅇㅇ ) ex) matirx1 = [[1,2] , [3,4]] --> [[가 2개 이므로 ( ? , ? ) 꼴이고 2개의 원소이므로 ( ? , 2 ) 이며 2개 있으므로 (2,2) matrix2 = [[1],[2]] --> [[2개 , 원소 1개, 총개수 2개 --> (2,1) ==> 매트릭스 곱을 하려면 ( a , b ) X ( c , d ) --> b와 c가 같아야 한다. 결과는 ( a , d ) matmul 와 * 의 결과는 다르다. axis는 가장 밖이 0 안으로갈수록 수가 높아지며 가장 안쪽 a..
** 성능 평가 : training set --> 학습 : training set을 통해 결과를 예측.==> 이런 경우에는 아주 나쁜 방법이다. ( 100%의 정확도가 나올수 있다 ) 좋은 방법이란 ? : date를 training과 test set으로 나누어서 훈련시키고 결과를 예측한다. training set -> trainValidation set -> Learning rate, lamda(regularaztion) Training set으로 모델을 학습시킨다. 그리고 모델에게 test를 해준다. * Non normalized input --> 결과값이 제대로 나오지 않을 수 도 있다. : 정규화를 시켜주면 된다. ( MinMaxScaler () )를 통해 scale을 해준다. : 데이타가 굉장히 ..
* Large learning rate - overshooting : step이 너무 큰경우에는 제대로 된 학습이 이루어지고 cost를 찾을수 없게 된다. * Small learning rate : step이 너무 작으면 너무 오래걸리거나 local minimum이 될 수도 있다. --> Try several learning rates !! * Data (X) preprocessing for gradient descent : learning rate를 잘했음에도 cost를 제대로 처리하지 못하는 경우 * Overfitting : 학습데이터에만 맞춰져있는 모델일 수 있다. 실제로 적용하기는 어렵다.model이 더욱 일반적인 상황이다.model2는 너무 특정한 training set에만 학습된 결과일 수 있..
Logit = tf.matmul(X,W) + b --> ((SoftMax)) --> Probabilities cost는 동일함. one_hot 함수는 실행하면 하나의 차원을 더 크게해준다. [[0],[3]]따라서 reshape 이라는 함수를 통해 원하는 형태로 만들어준다. ##코드## **flatten --> [[1],[0]] --> [1,0]으로 만들어주는 함수
Multinomal Classification에서 가장 많이 사용되는 것이 Softmax Classification 이다. 0 ~ 1의 값을 갖게 하기위해서 sigmoid함수를 사용했다. 바Y는 예측값을 나타낸다. W를 학습한다는것은 X와 ㅁ을 구분하는 선을 찾아낸 다는 뜻이다. 1) 하나씩 구분해서 찾아 낸다. A 인가 아닌가 2) B 인가 아닌가3) C 인가 아닌가--> 3개의 각각 다른 binary로 구현 가능함. 각각 별개로 구현했을 때의 그림 합쳐서 행렬의 곱으로 만들수 있다. 우리의 목표는 0~1의 값으로 나타내는 것 --> SoftMax! softmax를 사용하면 우리가 원했던 0~1의 값과 총합이 1 이되는 조건을 만족할 수 있다. 가장 높은것만을 1로 해서 나머지 값들은 버리는 방법 'O..
학습이라는 것은 최소의 cost를 찾아내는 것이다. cost 곡선은 Gradient decent 알고리즘을 쓰면 어떤 점에서 시작하더라도 최종시점은 최소점으로 간다.기울기에 따라서 점점 내려간다. learning_rate 는 얼만큼씩 움직일 것인가에 대한 상수. Classfication이란 ? (Binary) 둘중에 한개의 정해진 카테고리를 고르는 것.Spam Detection : Spam(1) or Ham(0)Facebook feed : show(1) or hide(0)Credit Care Fraudulent Transcaton detection : legitimate/fraud (신용카드 다르게 사용하면 가짜라고 판별) --> 0,1 encoding 여러가지의 활용도가 높아지고 있다.ex ) 의료, ..