해봤던것들(45)
-
텐서플로우 기본2
tf.truncated_normal() 는 평균이 0에 가깝고 값이 0에 가까운 정규 분포에서 난수를 선택합니다. Ex. -0.1 내지 0.1이다. 정상적인 분포에서 꼬리를 자르기 때문에 잘린 것으로 불립니다. tf.random_normal() 는 평균이 0에 가까운 정규 분포에서 난수를 선택합니다. 그러나 값은 조금 더 멀리 떨어져있을 수 있습니다. a = tf.random_normal(shape=[3],seed=1) b = tf.random_normal([2,3],mean=10,stddev=2) c = tf.truncated_normal([2,3],mean=10,stddev=2) d = tf.random_uniform([3],minval=0,maxval=1) sess = tf.Session() pri..
2018.12.10 -
텐서플로우 기본
tf.constant 함수상수텐서를 만들때 사용하는 함수이다. a = tf.constant(np.arange(6).reshape(2,3)) 이런식으로 값을 넣어줄 때 사용한다. tf.reduce_sum()함수 b = tf.reduce_sum(a)c = tf.reduce_sum(a, axis = 0)d = tf.reduce_sum(a, axis = 1) 행렬값을 더해주는 함수이다. sess = tf.Session()print("a =",sess.run(a))print("b =",sess.run(b))print("c =",sess.run(c))print("d =",sess.run(d))sess.close() 세션을 열고 값을 출력한다.a = [[0 1 2] [3 4 5]]b = 15c = [3 5 7] #열..
2018.12.10 -
오차역전파법
오차역전파법이라는 용어를 먼저 살펴보자면역전파라는 말 그대로 역전파는 역방향으로 전파하는 방법과손실함수(오차)를 이용하기 때문입니다. 오차역전파법은 계산 그래프로 쉽게 나타낼 수 있습니다.계산 그래프는 '국소적 계산'을 한다는 장점과 중간 계산 경과를 모두 보관할 수 있다는 점그리고 미분을 효율적으로 계산할 수 있다는 점이 있습니다. 위와같이 나타내는게 계산 그래프 입니다. (x 부호는 곱셈노드 +부호가 있는 노드는 덧셈노드라 합니다.) 따로 설명하지 않아도 이해가 될 만큼 아주 직관적입니다.'국소적 계산' 이란 각각의 범위 예를들면 위 그림에서 2x100 과 150x3을 몰라도 200과 450의 합은 650인 것을 알 수 있는 것입니다. 때문에 복잡한 계산도 단순화 할 수 있습니다. 역전파의 계산 절차..
2018.10.30 -
신경망에서 행렬 곱(ft.파이썬)
다차원 배열의 계산에 대해서 먼저 알아봅시다. 123456789101112131415161718192021222324>>> import numpy as np>>> A = np.array([1,2,3,4])>>> print(A)[1 2 3 4]>>> np.ndim(A)1>>> A.shape(4,)>>> A.shape[0]4>>> B=np.array([[1,2],[3,4],[5,6]])>>> print(B)[[1 2] [3 4] [5 6]]>>> np.ndim(B)2>>> B.shape(3, 2)>>> np.dot(A,B)Traceback (most recent call last): File "", line 1, in np.dot(A,B)ValueError: shapes (4,) and (3,2) not a..
2018.10.15 -
계단 함수, 시그모이드 함수, ReLU 함수(ft.파이썬)
계단 함수는 계단 모양! 시그모이드(Sigmoid)는 S모양! ReLU는 아래와 같이 0보다 큰 값만 나타낸 모양 이제 계단 함수부터 파이썬으로.. 1 2 3 4 5 6 7 8 9 10 11 >>> def step_function(x): if x > 0: return 1 else: return 0 >>> step_function(3) 1 >>> step_function(-0.5) 0 cs 요런 식으로 함수를 만들어주고 x가 0보다 큰 값이 들어오면 1을 반환해주고 그렇지 않으면 0을 반환해주도록 합니다. 0보다 큰 3을 넣었더니 1이 나오고 -0.5를 넣었더니 0이 나오는 것을 확인할 수 있었습니다., 하지만 입력값을 계속 하나씩 줄 수는 없으니 배열을 사용해봅시다. 1 2 3 4 5 6 7 8 9 >>..
2018.10.15 -
퍼셉트론에서 신경망으로
퍼셉트론은 신경망과 다릅니다.물론 퍼셉트론으로 복잡한 함수도 표현이 가능 하지만원하는 결과가 나오도록 가중치 값을 정하는 작업은 사람이 해줘야하기 때문입니다. 하지만 신경망은 그렇지 않습니다.가중치 매개변수의 값을 데이터로부터 자동으로 학습합니다. 신경망의 구조를 알아보겠습니다. 신경망은 입력층, 은닉층, 출력층 크게 3가지의 층으로 구성됩니다.주의 할 점은 실제로 가중치를 갖는 층은 은닉층과 출력층 2개의 층이기 때문에2층 신경망이라고 합니다. 신경망https://ko.wikipedia.org/wiki/%EC%9D%B8%EA%B3%B5_%EC%8B%A0%EA%B2%BD%EB%A7%9D 위의 그림만 봐서는 퍼셉트론과 크게 차이점이 없습니다.차이점은 뉴런이 연결되는 방식이 아닌 신호를 전달하는 방식의 차이..
2018.10.15