| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 아파치
- 백준
- 파이썬
- PHP
- 역전파
- PICO CTF
- Python Challenge
- picoCTF
- HTML
- 오차역전파법
- 기울기
- CTF
- AdaGrad
- 우분투
- Apache2
- 소프트맥스 함수
- flag
- PostgreSQL
- 신경망
- sgd
- 순전파
- 책
- Python
- 신경망 학습
- 설치
- 리뷰
- 딥러닝
- C언어
- FastAPI
- 코딩
- Today
- Total
목록전체 글 (160)
Story of CowHacker
이번 글에서는 배치 처리에 대해 알아볼 것이다. import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 import numpy as num import pickle from dataset.mnist import load_mnist from common.functions import sigmoid, softmax def get_data(): (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, flatten=True, one_hot_label=False) return x_test, t_test def init_network(): with open("sample_weight...
이제 신경망의 추론 처리에 대해 알아 볼것이다. MNIST 데이터 셋을 가지고 추론을 수행하는 신경망을 구현해볼거다. 먼저 MNIST데이터에 대해 자세히 설명하자면 첫째 MNIST의 데이터셋은 0부터 9까지의 숫자 이미지로 구성된다. 둘째 MNIST의 이미지 데이터는 28 x 28 크기의 회색조 이미지다. 셋째 MNIST의 이미지 데이터의 각 픽셀은 0에서 255까지의 값을 취한다. 자, 이제 신경망의 추론을 수행해보자. 이 신경망은 입력층 뉴런을 784개, 출력층 뉴런을 10개로 구성한다. 입력층 뉴런이 784개인 이유는 이미지 크기가 28 x 28 = 784 이기 때문이다. 출력층 뉴런이 10개인 이유는 이문제가 0에서 9 까지의 숫자를 구분하는 것이기 때문이다. 은닉층은 총 두 개다. 첫 번째 은닉..
백준 10172번 문제를 풀어 볼것이다. #include int main(void) { printf('|\_/|') printf('|q p| /}') printf('( 0 )"""\ ') printf('|"^"` |') printf('||_/=\\\__|') } C언어로 풀어봤다. C언어에서 "" 안에 문자를 그대로 출력 할려면 출력할 문자 뒤에 \을 써줘야한다. 다음으로는 python으로 풀어보았다.
백준 10171번 문제를 풀어 볼 것이다. #include int main(void) { printf("\\ /\\\n"); printf(" ) ( ')\n"); printf("( / )\n"); printf(" \\(__)|\n"); } 먼저 C언어로 풀어봤다. C언어에서 \출력은 \\이렇게 두 개씩 써야 한다. print("\ /\\") print(" ) ( ')") print("( / )") print(" \(__)|") 다음은 python으로 풀어보았다.
지금까지 알아본 신경망을 통해 실전 예에 적용해보자. 손글씨 숫자 분류를 구현해볼 거다. 출처 : tinyurl.com/y2dcawlm Figure 1. Examples handwritten digits in the MNIST dataset. Download scientific diagram | Examples handwritten digits in the MNIST dataset. from publication: Long-Short Term Memory Networks for Modelling Embodied Mathematical Cognition in Robots | Mathematical competence can endow robots with the necessary capabili www.r..
이번 글에서는 먼저 앞 글에서 언급한 소프트맥스 함수의 취약점을 보안한 식을 알아볼 것이다. 소프트맥스 함수에서 지수함수 ( 분자 ) 는 쉽게 아주 큰 값을 낸다. 예를 들어 e^10 은 20,000이넘고, e^100 은 0이 40개가 넘는 큰 값이 된다 이런 큰 값끼리 나눗셈을 하면 결과 수치가 불안정 해진다. 즉, 오버플로 문제가 생긴다. 이제 한번 앞에서 언급한 소프트맥스 함수를 개선 해본다. 개선전 소프트맥스 함수 일단 개선 전 소프트맥스 함수식을 본다. 소프트맥스 함수 개선 과정 첫 번째 과정에서는 C라는 임의의 정수를 분자, 분모 양쪽에 곱했다. 두 번째 과정에서는 C를 지수 함수인 exp() 안으로 옮겨 logC로 만든다. 세 번째 과정에서는 logC를 C` 라는 새로운 기호로 치환한다. 결..
머신러닝은 분류와 회귀로 나뉜다. 분류 : 데이터가 어느 클래스에 속하는지를 뜻한다. ex) 사진 속 사람의 성별을 분류하는 작업이 있다. 회귀 : 입력 데이터에서 수치를 예측하는 것을 뜻한다. ex) 사진 속 사람의 몸무게가 대략 몇 kg 할 것이다와 같이 예측에 해당한다. 여기에서 어느 문제를 쓸 것인지에 따라 신경망의 출력층에서 사용하는 활성화 함수가 달라진다. 분류를 사용 시 소프트맥스 함수, 회귀를 사용 시 항등 함수를 사용한다. 소프트맥스 함수 식 그림1은 소프트맥스 함수를 식으로 나타낸 것이다. exp ( x )는 e^x을 뜻하는 지수 함수다 ( e는 자연상수 ). n은 출력층의 뉴런 수다. yk는 그중 k번째 출력임을 뜻한다. 소프트맥스 함수의 분자는 입력 신호 ak의 지수 함수, 분모는 ..
저번 글 ( 딥러닝 2.3 ) 을 이어 이번에는 2층에서 출력층으로 신호 전달을 하는 과정을 볼 것이다. 2층에서 출력층으로의 신호 전달 그림1에서 출력층에서 활성화 함수가 다르다는 것을 알 수 있다. h()가 아닌 σ( 시그마 ) 를 표시하였다. 이제 파이썬으로 구현해본다. import numpy as num X = num.array ( [ 1.0, 0.5 ] ) W1 = num.array ( [ [ 0.1, 0.3, 0.5 ], [ 0.2, 0.4, 0.6 ] ] ) B1 = num.array ( [ 0.1, 0.2, 0.3 ] ) W2 = num.array ( [ [ 0.1, 0.4 ], [ 0.2, 0.5 ], [ 0.3, 0.6 ] ]) B2 = num.array ( [ 0.1, 0.2 ] ) ..