일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 역전파
- picoCTF
- PostgreSQL
- flag
- 신경망 학습
- PHP
- sgd
- FastAPI
- C언어
- 오차역전파법
- 우분투
- 딥러닝
- AdaGrad
- 순전파
- 책
- 아파치
- Python Challenge
- PICO CTF
- Apache2
- Python
- 리뷰
- CTF
- 소프트맥스 함수
- 설치
- 코딩
- 파이썬
- 백준
- 신경망
- 기울기
- HTML
- Today
- Total
목록전체 글 (160)
Story of CowHacker

다시 한번 신경망 학습의 절차를 보겠다. 전제 신경망에는 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 학습이라고 한다. 1단계 - 미니 배치 훈련 데이터 중 일부를 무작위로 가져온다. 손실 함숫값을 줄이는 것이 목표다. 2단계 - 기울기 산출 미니 배치의 손실 함숫값을 줄이기 위해 각 가중치 매개변수의 기울기를 구한다. 3단계- 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금 갱신한다. 4단계 - 반복 1 ~ 3 단계를 반복한다. 지금까지 알아온 오차 역전파법은 2단계 기울기 산출에 속한다. 이제 오차 역전파법을 본격적으로 구현할 차례다. 먼저 2층 신경망에서 클래스의 인스턴스 변수와 메서드를 알아보겠다. 이제 그림 1과 그림 2를 참고해 클래스 코드를 ..

이번 글에서는 먼저 출력층에서 사용하는 소프트 맥스 함수에 대해 알아보겠다. 소프트맥스 함수는 입력값을 정규화하여 출력한다. 그림1은 간소화한 Softmax-with-Loss 계층의 계산 그래프다. 여기서 이름에 -with-Loss가 붙는 이유는 손실함수인 교차 엔트로피 오차도 포함했기 때문이다. 그림1의 계산 그래프를 해석해보면 1. 3클래스로 가정하고 3개의 입력을 받는다. 2. 입력 ( a1, a2, a3 ) 을 정규화 하여 출력 ( y1, y2, y3 ) 을 한다. 3. Cross Entropy Error 계층은 Softmax의 출력 ( y1, y2, y3 )과 정답 레이블 ( t1, t2, t3 )를 받고 이 데이터로 부터 손실 L을 출력한다. 이제 파이썬으로 구현해보겠다. class Softm..

이번 글에서는 먼저 Affine 에대해 알아보겠다. Affine 계층이란? 신경망의 순전파 때 수행한 행렬의 곱을 기하학에서는 Affine계층이라고 불린다. 그림1을 보면 행렬의 곱에서 대응하는 차원의 원소 수를 일치 시킨다는걸 볼수있다. 그림2 는 Affine계층의 계산 그래프를 나타낸것이다. X, W, B가 행렬이라는 점에 주의해야한다. 지금까지의 계산 그래프트 노드 사이에 스칼라값이 흘렀는데 이 예에서는 행렬이 흐르고 있다. 이제 그림2의 역전파를 식으로 나타내보겠다 이제 계산그래프로 나타 내보겠다. 그림4를 보면 1, 2로 표시 된곳이 있는데 그것은 바로 그림5는 1 그림6은 2다. 지금까지 봐온 Affine계층은 입력 데이터로 X 하나만 고려한 것이였다. 이번에는 데이터 N개를 묶어 순전파 하는..

이번 글에서는 활성화 함수 계층에서 ReLU와 Sigmoid 계층을 구현해볼 것이다. 1. ReLU 계층 그림 1은 ReLU계층을 수식으로 나타낸 것이다. 그림 2는 x에 대한 y의 미분을 한 것이다. 순 전파 때의 입력인 x가 0보다 크면 역전파는 상류의 값을 그대로 하류로 흘린다. 반면, 순전파 때 x 가 0 이하면 역전파 때는 하류로 신호를 보내지 않는 걸 볼 수 있다. 위 그림 1 ,2를 계산 그래프로도 나타 내보겠다. 이것을 이제 파이썬으로 구현해보겠다. 파이썬 코드는 출처 : https://github.com/WegraLee/deep-learning-from-scratch WegraLee/deep-learning-from-scratch 『밑바닥부터 시작하는 딥러닝』(한빛미디어, 2017). C..

이번 글에서는 먼저 연쇄 법칙에 대해서 알아볼 것이다. 연쇄 법칙이란? 합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다. 여기서 합성 함수가 뭔지 알아야만 한다. 합성함수란? 여러 함수로 구성된 함수다. 그림 1의 식은 그림 2처럼 두 개의 식으로 구성된다. 다음은 역전파에 대해서 알아보겠다. 역전 파는 연쇄 법칙이랑 같은 원리다. 먼저 덧셈 노드의 역전파에 대해 알아보겠다. z = x + y 라는 식을 미분해보면 그림 3처럼 된다. 이것을 계산 그래프로 표현하면 그림 4는 순 전파를 나타낸 것이고, 그림 5는 역전파를 나타낸 것이다. 그림 5에서 상류에서 전해진 미분에 1을 곱하여 하류를 거친다. 결국 덧셈 노드의 역전 파는 1을 곱하기만 할 뿐이므로 입력된 값을 그대..

이번에는 오차 역전파법을 알아볼 것이다. 오차 역전파법이란 가중치 매개변수의 기울기를 효율적으로 계산하는 것이다. 오차 역전파법을 이해하는 방법은 두 가지가 있는데 수식 또는 계산 그래프다. 계산 그래프로 설명한다는 생각은 안드레 카페시, 페이페이 리 교수가 진행한 딥러닝 수업에서 나왔다. 계산 그래프 여기서 사용하는 그래프는 자료구조로, node와 edge로 표현된다. 그럼 문제를 풀어보겠다. 문제 1. A는 슈퍼에서 1개에 100원인 사과를 2개 샀다. 이때 지불 금액 구하기. 단, 소비세가 10% 부과된다. 그림 1을 설명해보겠다. 처음에 사과의 100원이 X2 노드를 거친 후 200원이 되어 다음 노드로 전달된다. 200원이 X1.1 노드를 거친 후 220원이 된다. 결과는 220원이 된다. 위 ..

이번 글에서는 신경망 학습 알고리즘에 대해 알아볼 것이다. 지금 까지 알아온 손실 함수 미니 배치 기울기 경사 하강법 등 많은 걸 봤다. 이것은 신경망 학습 절차에 그대로 적용된다. 신경망 학습 절차 0. 전제 신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 학습이라고 한다. 1. 미니 배치 훈련 데이터 중 일부를 무작위로 가져온다. 이렇게 선별한 데이터를 미니 배치라고 한다. 이 미니 배치의 손실 함숫값을 줄이는 것이 목표다. 2. 기울기 산출 미니배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구한다. 기울기는 손실 함수의 값을 가장 작게 하는 방향을 제시한다. 3. 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금..

pwnable.kr 사이트 문제 중 input이라는 문제를 풀어볼 것이다. 출처 : http://pwnable.kr/play.php http://pwnable.kr/play.php pwnable.kr 문제 서버에 접속을 해봤다. 드래그 한 부분에 대충 /tmp 아래에 파일은 언제든 지울 수 있고, /tmp 아래에 나의 디렉터리를 만들라는 소리인 거 같았다. 다음은 문제 서버에 c파일이 있길래 열어 봤다. c파일의 내용은 엄청 길었다. 중간중간에 Stage 1 clear!라고 위 코드를 만족시키면 클리어를 시켜 주는 듯했다. 총 5개 보였다. 먼저 나는 Stage 1 위에 printf 문을 봤다. 출처 : https://papago.naver.com/ 네이버 파파고 번역을 부탁해 파파고 papago.nav..