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

3층 신경망 구성 입력층 ( 0층 ) -> 첫 번째 은닉층 ( 1층 ) 3개 -> 두 번째 은닉층 ( 2층 ) 2개 -> 출력층 ( 3층 ) 2개 그림 1에서 x1,x2는 입력층이고, y1,y2 는 출력층이다 중간에 아무것도 안 적힌 상자들은 은닉층 들이다. 그림 2는 입력층의 뉴런 x2에서 다음 층의 뉴런으로 향하는 선 위에 가중치를 표시하고 있다. 그림 2의 과정을 표기한 밑의 그림 3을 본다. 그림 3에서 w오른쪽 위에는 ( 1 )이 붙어있는데 이것은 1층의 가중치를 뜻하는 것이다. w의 오른쪽 밑 첫 번째 숫자인 1은 다음 층의 1번째 뉴런을 뜻하고, w의 오른쪽 밑 두 번째 숫자인 2는 앞 층의 2번째 뉴런을 뜻한다. 해석을 해보면 앞 층의 2번째 뉴런 ( x2 ) 에서 다음 층의 1번째 뉴런 ..

백준 10718번을 풀어볼것이다. 알고리즘 분류는 출력이다. 입력 조건은 없고 출력 조건에 강한친구 대한육군을 한 줄에 한 번씩 두줄에 걸쳐 출력하는 것이였다. C언어로 푼것이다. main문에 첫번째로 크기100인 a에 강한친구 대한육군이라는 문자를 가진 변수를 선언했다. 두번째로 printf를 두번사용해 출력 조건을 충족 시켯다. 파이썬으로 푼것이다. print의 옵션인 \n을 사용하여 바로 출력 조건을 충족 시켰다.

Hello World 백준 알고리즘 사이트내에 단계별로 풀기에서 첫번쨰 문제다. 알고리즘 분류는 출력이다. 나는 문제에서 요구하는 Hello World!를 출력하기 위해 print를 썻다.

다차원 배열 다차원 배열이란 숫자의 집합이다. 숫자가 한 줄로 늘어선 것이나 직사각형, 3차원, N차원으로 나열하는 것을 통틀어 다차원 배열이라고 한다. 이 다차원 배열을 넘파이로 구현해보겠다. [ 1 차원 배열 ] import numpy as num A = num.array ( [ 1, 2, 3, 4 ] ) print ( A ) print ( num.ndim ( A ) ) # 배열의 차원수를 알 수 있다. print ( A.shape ) # 배열의 형상을 알수 있다. print ( A.shape [ 0 ] ) 위 코딩은 1차원 배열을 구현한 것이다. ndim은 배열의 차원수를 알려주는 역할을 한다. shape은 배열의 형상을 알려주는 역할을 한다. 여기서 shape가 알려줄 때 튜플 형태로 알려준다는 ..

시그모이드 함수 그림 1은 시그모이드 함수를 수식으로 나타낸 것이다. exp(-x)에서 e는 자연상 수로 2.7182... 의 값을 갖는 실수다. 시그모이드 함수 구현하기 시그모이드 함수 식 구현하기 import numpy as num def sigmoid(x): return 1 / ( 1 + num.exp ( -x ) ) 시그모이드 함수 그래프로 구현하기 import numpy as num import matplotlib.pyplot as plt def sigmoid(x): return 1 / ( 1 + num.exp ( -x ) ) x = num.arange ( -5.0, 5.0, 0.1 ) y = sigmoid ( x) plt.plot ( x, y ) plt.ylim ( -0.1, 1.1 ) plt..

신경망 : 앞에서 본 퍼셉트론의 발전 형태다. 신경망의 원리 신경망은 입력층, 은닉층, 출력층 총 3가지 층으로 이뤄져있다. 신경망과 퍼셉트론의 차이점? 퍼셉트론에서는 가중치의 값을 사람이 수동으로 설정 해야한다는점이다. 신경망에서는 이 가중치 값을 데이터로 부터 자동으로 학습해 설정한다. 다음은 신경망과 퍼셉트론에서 사용하는 함수에 대해 알아보겠다. 활성화 함수 활성화 함수 : 입력 신호의 총합을 출력 신호로 변환하는 함수다. 활성화 함수 식 a = b + w1x1 + w2x2 y = h ( a) 활성화 함수 처리 과정 그림2 편향이 1로 고정된걸 알수있다. 그 이유는 편향의 입력 신호는 항상 1이기 때문이다. 다음은 신경망에서 사용하는 활성화 함수중 두가지를 알아보겠다.

포너블 random 문제를 풀어볼것이다. 한 아이가 아빠한테 프로그래밍할때 랜덤값을 어떻게 사용하는지 묻는 문제였다. 문제 서버로 접속해서 파일 목록을 보니 c파일이 있었다. c파일을 열어서 보니 random이라는 변수값을 선언하고 scanf로 받는 구조로 시작했다. 그리고 scanf한 key값과 random값을 ^ ( XOR ) 한 값이 0xdeadbeef랑 같으면 flag를 볼수있는 문제였다. 먼저 random값이 무엇인지알아야만 했다. 먼저 intel 문법으로 쉽게 보기 위해 설정을 했다. call한 부분에서 random변수를 선언한걸 알수있다. 저 부분에 break를 걸고 실행해봤다. eax에 random값이 들어간걸 볼수있었다. eax에 6b8b4567값이 들어간걸 드디어 확인할수 있었다. 이제..

퍼셉트론이란? 딥러닝의 기원이 되는 알고리즘이다. Frank Rosenblatt가 1957년에 고안한 알고리즘이다. 퍼셉트론의 원리 그림 1에서 x1, x2는 입력 신호고 y는 출력 신호, w1, w2는 가중치다. 네모 칸을 뉴런 또는 노드 라고 부른다. 입력 신호가 뉴런에 보내질 때 각각의 가중치가 곱해진다. 이때 가중치의 각각의 식은 w1*x1, w2*x2다. 이 입력 신호가 정해진 한계 ( θ theta )를 넘어설 때만 1을 출력한다. 그림 2는 그림 1을 수식으로 나타낸 것이다. 다음은 세가지 논리회로의 진리표를 보겠다. - AND 게이트 진리표 - x1 x2 y 0 0 0 1 0 0 0 1 0 1 1 1 - NAND 게이트 진리표 - x1 x2 y 0 0 1 1 0 1 0 1 1 1 1 0 -..