분류 전체보기(217)
-
오차역전파법
오차역전파법이라는 용어를 먼저 살펴보자면역전파라는 말 그대로 역전파는 역방향으로 전파하는 방법과손실함수(오차)를 이용하기 때문입니다. 오차역전파법은 계산 그래프로 쉽게 나타낼 수 있습니다.계산 그래프는 '국소적 계산'을 한다는 장점과 중간 계산 경과를 모두 보관할 수 있다는 점그리고 미분을 효율적으로 계산할 수 있다는 점이 있습니다. 위와같이 나타내는게 계산 그래프 입니다. (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 -
C언어 구조체와 사용자정의함수를 사용해서 학점구하기
변수정의는 구조체를 사용하고사용자정의함수를 사용해서 입력, 출력, 계산, 오름차순을 하는 코드를 만들어봅시다.이전 글과 동일하게 구조체를 만들어줍니다. 12345678typedef struct{ char name[20]; int kor, eng, mat; int tot; double avg; char grade;}Student;cs 사용자정의함수는 아래처럼 만들어줬습니다. 12345678910111213void input_data(Student *parry)//입력{}void calc_data(Student *parry)//계산{}void sort_data(Student *parry)//순서{}void print_data(Student *parry)//출력{}Colored by Color Scripter..
2018.10.14 -
C언어 구조체를 사용해서 입력, 출력하기
구조체에 대해서 먼저 알아봅시다. C/C++ 프로그래밍 언어에서 구조화 된 데이터를 처리할 때 struct를 사용하는데 이를 구조체라고 한다.구조화되었다는 말은 의미가 연결되어 한 덩어리로 처리하는 방식을 말한다.관련된 컴퓨터 용어로 보면 record 그리고 Object와 비슷한 개념이다.그리고 자료처리와 연관하여 데이터 구조와 연관이 되어 있다. https://ko.wikipedia.org/wiki/Struct 구조체는 각각의 변수를 저장해놓는 상자입니다.학생의 이름, 국어, 영어, 수학점수를 입력받고총점, 평균을 구해서 평균을 기준으로 학점을 구하는 소스를 짜봅시다. 일단 구조체를 만들어줍시다.구조체는 typedef struct{ } 이런 형식으로 만들고 구조체 안에는 변수들이 들어가게 됩니다.변수를..
2018.10.14