일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python Challenge
- PICO CTF
- 딥러닝
- 코딩
- 순전파
- FastAPI
- Apache2
- 신경망 학습
- CTF
- PostgreSQL
- C언어
- 설치
- 우분투
- 역전파
- 아파치
- 책
- flag
- HTML
- 신경망
- 소프트맥스 함수
- Python
- 오차역전파법
- 파이썬
- 기울기
- 백준
- picoCTF
- sgd
- AdaGrad
- 리뷰
- PHP
- Today
- Total
목록전체 글 (160)
Story of CowHacker

이번 글에서는 저번에 배웠던 기울기를 이제 신경망에서 구현해보겠다. 신경망에서 말하는 기울기는 가중치 매개변수에 대한 손실 함수의 기울기다. 예를 들어 2 x 3 인 형상에서 가중치가 W, 손실 함수가 L인 신경망을 생각해보면 가중치 W를 수식으로 나타내면 그림 1이 된다. 그림 2는 경사를 수식으로 나타 냈을 때다. 해석해보면 각 원소는 각각의 원소에 관한 편미분이다. 예를 들어 1 행 1 번째 원소는 w11을 조금 변경했을 때 손실 함수 L이 얼마나 변화하느냐를 나타낸다. 여기서 중요한 점은 그림 2의 형상이 W와 같다는 것이다. 이제 한번 신경망에서 기울기를 구하는 코드를 짜 보겠다. 신경망에서의 기울기 코드 import sys, os sys.path.append(os.pardir) # 부모 디렉터..

이번 글에서는 경사 법에 대해 알아보겠다. 머신러닝 문제 대부분은 학습 단계에서 최적의 매개변수를 찾아낸다. 딥러닝 즉, 신경망 역시 최적의 매개변수를 학습 시에 찾아야 한다. 여기서 최적이란 손실 함수가 최솟값이 될 때의 매개변수 값이다. 경사 법이란 기울기를 이용해 함수의 최솟값을 찾으려는 것이다. 경사 법을 수식으로 나타내 보겠다. 그림 1이 바로 경사 법을 수식으로 나타낸 것이다. 수식에서 η ( 에타 )는 갱신하는 양을 나타낸다. 이를 신경망 학습에서는 학습률이라 한다. 학습률이란 한 번의 학습으로 얼마만큼 학습해야 할지, 즉 매개변수 값을 얼마나 경신하냐를 결정하는 것이다. 이제 경사 법을 파이썬으로 구현해보겠다. 경사 법 코드 def gradient_descent ( f, init_x, lr..

이번 글에서는 앞 글에서 봤던 편미분을 묶어서 동시에 계산하는 방법을 알아보겠다. 이 묶어서 계산하는 방법이 바로 기울기라는 것이다. 지금부터 기울기에 대해 알아보겠다. 그림 1처럼 모든 변수의 편미분을 벡터로 정리한 것을 기울기라고 한다. 이 기울기를 파이썬으로 구현해보겠다. 기울기 코드 import numpy as num def numerical_gradient ( f, x ) : h = 1e-4 grad = num.zeros_like ( x ) for idx in range ( x.size ): tmp_val = x [ idx ] x [ idx ] = tmp_val + h fxh1 = f ( x ) x [ idx ] = tmp_val - h fxh2 = f ( x ) grad [ idx ] = ( ..

생활코딩이라는 곳에서 PHP공부를 시작할려는 나다. 지금 부터 생활코딩에서 내가 PHP에 대해 배운 내용들을 기록해 나갈 생각이다. 출처 : https://opentutorials.org/course/3018/233 PHP란 무엇인가? - 생활코딩 PHP란 무엇인가? 2011-09-16 00:06:20 Server side? PHP? 주로 HTML 코드를 프로그래밍적으로 생성 서버쪽에서 실행 되는 프로그래밍 언어 Personal Home Page Tools 의 약자에서 PHP:Hypertext Preprocessor 로 의미가 변경 opentutorials.org 아직까지는 PHP의 역사에 대해 먼저 알아봤고, 그다음 PHP는 무엇인지 PHP의 설치 방법에 대해서 배웠다. 절때 워드 작업이 하기 싫어서 ..

이번 글에서는 먼저 미분에 대해 알아볼 것이다. 미분 : 특정 순간의 변화량을 뜻한다. 그림 1은 미분을 수식으로 나타낸 것이다. 좌변은 x에 대한 f ( x )의 변화량을 나타내는 기호다. 결국, x의 작은 변화가 함수 f ( x )를 얼마나 변화시키느냐를 의미한다. 이때 시간을 뜻하는 h를 한없이 0에 가깝게 한다는 의미로 lim h->0로 나타낸다. 이제 위 미분을 파이썬으로 구현해보겠다. 미분 코드 def numerical_diff ( f, x ) : h = 1e-4 return ( f ( x + h ) - f ( x - h ) ) / ( 2 * h ) 함수 이름은 수치 미분을 뜻한다. 이 함수는 함수 f와 함수 f에 넘길 인수 x라는 두 인수를 받는 원리다. 그럼 이제 위 함수를 사용해 간단한 ..

유튜브에서 김승호 CEO의 강의를 재밌게 봐왔던 나는 이번에 그 강의를 주제로 한 책을 발간했다는 소식에 나는 바로 구매를 했다. 저자 : 김승호 페이지 : 약 300쪽 출판사 : SNOWFOX 책을 펼쳐 목차를 보는데 자신이 금융 문맹인지 알아보는 법, 주식으로 수익을 내는 사람들의 세 가지 특징, 앞으로 주식이 오를 것 같습니까?, 돈을 다루는 네 가지 능력 등이 눈에 띄었다. 한 주제당 페이지가 3페이지를 안 넘어가 정말 쉽게 쉽게 이해하고 부담이 안 간다는 점이 이 책의 장점인 거 같다. 특히, 내가 청년으로 다시 돌아가 부자가 되려 한다면 이라는 목차였는데 지금 시대의 현실을 말하는 내용이었다. 그래서 어떤 대책이 있는지에 대한 내용을 보고 나는 다시 한번 생각하게 됐다. 많은 주제와 각 주제마..

백준 1000번 문제 A + B 문제를 풀어 볼것이다. 문제 요구 사항은 두개의 입력 값을 받아 그 입력값을 더한것을 출력 하라는 것이였다. 먼저 C언어로 풀어보겠다. 먼저 int형 a, b, c 변수 3개를 선언 했다. 그리고 scanf 로 입력을 두번 받았다. 각각 a, b 변수에 값을 들어가게 했다. 그리고 c 라는 변수에 a + b 한 결과값을 들어가게 했다. 마지막으로 그 값을 출력했다. 이제 파이썬으로 풀어보겠다. 파이썬으로는 split()를 써 한번에 입력 두번을 받게 만들었다. 각각 a, b 에 값을 넣고 print를 할때 a,b 를 int로 변환 후 더한 값을 출력 하게 했다.

이제 신경망 학습에 대해 알아보겠다. 먼저 신경망의 특징에 대해 보면 데이터를 보고 학습할 수 있다는 점이다. 이 말은 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다. 여기서 신경망의 매개변수의 수는 수천에서 수만입니다. 더 들어가 층을 깊게 한 딥러닝 정도면 수억에 이른다. 그림 1은 이미지 5라는 것을 숫자 5라고 인식하는 과정을 나타낸 것이다. 첫 번째 과정은 사람이 생각한 알고리즘을 토대로 한 과정이다. 가장 어려운 방식이다. 두 번째 과정은 사람이 생각한 특징과 머신러닝을 토대로 한 과정이다. 세 번째 과정은 사람 개입 없이 온전히 신경망을 토대로 한 과정이다. 세 번째 과정을 종단 간 머신러닝 이라고도 한다. 처음부터 끝까지 사람의 개입 없이 결괏값을 얻을 수 있다는 뜻을 가..