▶ 컨볼루션 신경망 (Convolutional Neural Network)의 목적성DNN (Deep Neural Network)는 주로 1차원 형태의 데이터를 사용한다. 따라서 그림이나 이미지와 같은 2차원 형태의 데이터를 사용할 때는 1차원 형태로 flatten시켜야 한다. (완전 연결 계층, fully connected layer) flatten을 시키는 완전 연결 계층은 크게 2가지의 문제점이 발생한다.1. 이는 데이터의 형상을 완전히 무시하게 된다.2. 추상화 과정 없이 바로 연산과정에 넘어가버리므로 학습시간과 능률 측면에서 효율성이 떨어진다.CNN은 이러한 문제점을 해결하기 위해 도입된 방법이다. CNN은 완전 연결 계층과 달리 2차원 형태의 배열을 그대로 사용할 수 있다. ▶ 이미지의 컨볼..
▶ 역전파란 무엇인가 역전파는 레이블된 학습 데이터를 가지고 여러 개의 은닉층을 가지는 피드포워드 신경망을 학습시킬 때 사용되는 지도학습 알고리즘이다. 역전파는 크게 3단계의 과정이 반복적으로 이루어진다. 역전파의 단계는 아래 3개의 단계로 이루어져 있다. 1. 피드포워드 과정 모든 층에 있는 가중치를 적당히 작은 수로 초기화 학습 데이터 입력. 2. cost의 역전파 계산 과정 출력층에서 나타난 cost를 최소화하는 가중치 찾는 과정 최소제곱법을 이용해 cost를 제곱한 뒤, 가중치에 대하여 편미분. 델타 규칙 : 어떤 입력 노드가 출력 노드의 오차에 기여했다면, 두 노드의 연결 가중치는 해당 입력 노드의 출력과 출력 노드의 오차에 비례해 조절한다 3. 가중치 조정 앞 단계에서 계산된 에러의 최소평균제..
▶ 손실함수와 경사하강법 머신러닝 모델은 위와 같은 구조로 이루어진다. 머신러닝모델에 입력값을 넣고, 출력값과 실제값의 차이를 구하여 이를 줄여가는 구조로 이루어져있다. 이때 출력값과 실제값의 차이를 손실, 비용, Cost라고 부르고, 이를 함수화한 것이 바로 비용함수이다. 그리고 비용함수의 함숫값을 줄여가는 방법으로 경사하강법이 이용된다. (Gradient Descent Algorithm) 비용함수와 경사하강법에 대하여 자세한 내용은 아래 링크에서 다루고 있다. newindow.tistory.com/118?category=1137097 [ 딥러닝 알아가기 ] 선형회귀(Linear Regression)와 경사하강법▶ 선형 회귀(Linear Regression)이란 무엇일까 위의 그림을 보면 데이터 ..
문제 요구사항 분석 1. 변수 x,y,w,b 정의, variable 2. hypothesis, cost 함수 정의 3. cost값을 최소화하는 w값을 찾음. (learning_rate는 0.03으로 설정) 4. Session을 열고 초기화 5. x에 x, y에 y를 넣고 학습을 시킨 뒤(2001번) 적절한 w값과 b 값을 도출 소스코드 import tensorflow.compat.v1 as tf tf.disable_v2_behavior() x = [1,3,5,7] y = [7,15,21,31] w = tf.Variable(1.0) b = tf.Variable(0.0) # 변수 x,y,w,b Variable로 정의 hypothesis = x*w + b cost = tf.reduce_mean(tf.squar..
Tensorflow에서 변수를 설정할 때 크게 3가지의 방법을 이용할 수 있다. 각각의 차이점을 알아보자. 1. tf.constant 변하지 않는 일정한 값의 상수를 설정할 때 사용한다. tf.constant (value, dtype = None, Shape = None, anem='Const', verify_shape=False) import tensorflow.compat.v1 as tf tf.disable_v2_behavior() sess = tf.Session() x = tf.constant([5]) init = tf.global_variables_initializer() sess.run(init) print(sess.run(x)) 실행결과 2. tf.placeholder 일정 값을 받을 수 있는..
변수가 여러개 있는 Linear Regression import tensorflow.compat.v1 as tf tf.disable_v2_behavior() # import문 x1_data = [73.,94.,89.,96.,73.] x2_data = [80.,88.,91.,98.,66.] x3_data = [75.,93.,90.,100.,70.] y_data = [152.,185.,180.,196.,142.] x1 = tf.placeholder(tf.float32) x2 = tf.placeholder(tf.float32) x3 = tf.placeholder(tf.float32) y = tf.placeholder(tf.float32) w1 = tf.Variable(tf.random_normal([1]), ..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.