본문 바로가기

전체 글

(39)
[모두를위한딥러닝] 텐서보드(TensorBoard)로 딥러닝 해보기 텐서보드를 통해서 텐서의 그래프와 학습되는 과정을 시각화해서 볼 수 있다. 텐서보드는 다음과 같은 방법으로 구현할 수 있다. Step 1 어떤 텐서를 로깅할 지 히스토그램으로 정의한다. 파이썬 코드는 다음과 같다. with tf.name_scope("Layer1"): W1 = tf.Variable(tf.random_normal([2, 2]), name="weight_1") b1 = tf.Variable(tf.random_normal([2]), name="bias_1") layer1 = tf.sigmoid(tf.matmul(X, W1) + b1) tf.summary.histogram("W1", W1) tf.summary.histogram("b1", b1) tf.summary.histogram("Layer1..
[모두를위한딥러닝] XOR 문제를 딥러닝으로 풀기 Neural Network 하나로는 XOR 문제를 해결 할 수 없다. 그렇기에 다중 Neural Network로 이것을 해결하고자 하는데 이것이 딥러닝의 시작이다. 기존에 머신러닝이 XOR을 해결하고자 한다면 에러가 난다. 이론상으로 해결할 수가 없기 때문이다. X1 X2 Y 1 0 0 0 1 0 그렇기에 연구자들은 딥러닝 hidden Layer라는 개념을 도입한다. 아래와 같이 가정해보자 hidden layer 1 ==> w=[5,5] b=-8 hidden layer 2 ==> w=[-7,-7], b=3 hidden layer 3 ==> w=[-11,-11], b=6 그리고 X의 xor에 들어가는 인자라고 하고 결과 값을 구해보자 hidden layer 1 ==> W*x +b ==> 0+5-8 =-3 ..
[미래에셋대우] IT 신입 모집
[모두를위한딥러닝] 텐서(Tensor) 연산 기본 사용 명령어 Matmul 행렬을 곱할 땐 두 개의 곱에 대해서 끝이 맞아야 한다. matrix1=tf.constant([[1.,2.],[3.,4.]]) matrix2=tf.constant([[1.],[2.]]) tf.matmul(matrix1,matrix2).eval() 위는 (2,2) 행렬(x)과 (2,1) 행렬(y)을 곱하는데 곱한 결과는 y의 shape와 동일 하도록 해야한다. Broadcasting 행렬 요소 안에 있는 값을 포함하여 행렬 간 합을 구할 경우 사용한다. matrix1=tf.constant([[1.,2.],[3.,4.]]) matrix2=tf.constant([[1.],[2.]]) tf.matmul(matrix1,matrix2).eval() array([[ 5., 5.], [ 5., 5.]], ..
[모두를 위한 딥러닝] 로지스틱 cost 선형회귀 cost? 우선 가설에 대한 정의를 봐보자 가설에 대한 식은 위와 같으며 끝에 bias가 추가적으로 붙을 수 있다. 이 가설을 이용하여 로지스틱 회귀 방식에서는 다음과 같은 cost를 통해 최소화 알고리즘을 적용시킨다. 가설과 실제 값의 차이(WX-y)를 통하여 전체를 합치고 평균을 낸다. 그리고 이 차이의 최소 값을 이용하여 최적의(최소의) cost 값을 도출해낸다. 그렇기에 cost 값을 계속 구하다보면 위와 같은 도자기 모양이 나온다. 그리고 이 값을 찾기 위해 step을 옮기는 것을 learning rate라고 하며 최종적으로 원하는 weight 값을 찾아낸다. Logistic Classification 반면에 Classification은 두개 혹은 다중의 값(요소)가 있을 때 그리고 여러 개의 값 중 최적..
[모두를위한딥러닝]ML 실용과 몇가지 팁 lenrning rate은 경사하강법에서 각각의 step을 얼마의 크기로 주고 할지를 정하는 수치라고 표현했었다. 만약, lenrning rate가 너무 클 시 제대로 측정이 되지 않을수 있다. 그럼 만약 너무 작은 값을 주게 될 시에는? 최적의 값을 찾지도 못하고 종료해버릴 수도 있다. 즉, 여러 개의 값을 주어지고 테스트를 해보는 것이 가장 좋은 방법이다. 데이터의 값(X)에 차이가 엄청 클 경우 normalization을 통해서 데이터의 중심을 0으로 옮겨주는 작업을 수행한다. 그리고 이것을 표현해주는 파이썬 식은 다음과 같다. x_std[:,0]=(x[:,0]-x[:,0].mean())/x[:,0].std() overfitting은 학습데이터에만 너무 잘맞는 모델을 바탕으로 학습된 결과를 도출하는..
[모두를위한딥러닝] 소프트맥스 회귀 하나의 벡터를 주어지고 X와 연산을 하게된다면 각각의 계산된 값은 독립된 바이너리 예측 값을 획득할 수 있으며 이것을 Multinomial Logistic Regression의 개념이다. 그렇다면 시그모이드란 함수는 뭣인가? 시그모이드는 위 Multinomial Logistic Regression 를 적용했을 때 나오는 각각의 결과 값에 대해서 0~1 사이의 값을 내놓도록 하는 역할을 한다. 위와 같이 2.0을 ->0.7로 1.0을 0.2로 바꿔주는 역할이 바로 소프트 맥스이다. 그렇다면 위와 같이 logitrs에서 A가 나올 확률이 0.7 B가 나올 확률이 0.2 C가 나올 확률이 0.1이라고 가정할 때 이것을 Binary(0,1)로 선택해서 보여달라는 것을 one hot encoding 즉, 그 값이..
KT 스타 오디션 2019 08 18 정보보안 분야 지원