일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 정보보안
- C언어 알고리즘
- FTZlevel10
- 소프트맥스함수
- BOJ
- 알고리즘
- 머신러닝
- 백준
- BOF
- 스트림암호
- 딥러닝파이썬
- 딥러닝
- 항등함수
- 파이썬
- 보안
- 신경망구현
- C언어알고리즘
- 인공지능
- C알고리즘
- 신경망
- 신경망파이썬
- 8086CPU레지스터
- 달고나bof
- 백준알고리즘
- 신경망 학습
- 버퍼오버플로우
- c언어
- 파이썬신경망
- 활성화함수파이썬
- 밑바닥부터시작하는딥러닝
- Today
- Total
목록분류 전체보기 (235)
HeeJ's
머신러닝 문제는 분류와 회귀 두 가지로 나뉘는데, 일반적으로 분류에서는 소프트맥스 함수를, 회귀에는 항등 함수를 이용한다. 분류 ; 어느 클래스에 속하느냐 분류하는 문제 회귀 ; 입력 데이터에서 (연속적인) 수치를 예측하는 문제 항등 함수 identity function 입력과 출력이 항상 같다. x = y 소프트맥스 함수 softmax function exp(x)는 e^x를 뜻하는 지수 함수이다. (e는 자연 상수) n은 출력층의 뉴런 수 y_k는 그 중 k번째 출력 위의 식에서 볼 수 있듯이, 소프틈낵스 함수의 분자는 입력 신호 a_k의 지수 함수, 분모는 모든 입력 신호의 지수 함수의 합으로 구성된다. 이 소프트맥스 함수를 파이썬으로 구현해보면 더보기 import numpy as np def sof..
넘파이 다차원 배열을 이용해 3층 신경망 구현하기 3층 신경망의 입력층(0층)은 2개, 첫 번째 은닉층(1층)은 3개, 두 번째 은닉층(2층)은 2개, 출력층(3층)은 2개의 노드로 구성된다. 더보기 import numpy as np X = np.array([1.0,0.5]) # X=(x1,x2)의 입력값을 나타낸다. W1 = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]]) #W는 가중치를 나타내는 값이다. #0층에서 1층으로 가는 화살표의 값이기 때문에 2차원 배열을 이용한다. B1 = np.array([0.1,0.2,0.3]) #B는 편향을 나타낸다. print(W1.shape) #(2, 3) print(X.shape) #(2, ) print(B1.shape) #(3, ) #...
old-34 문제에 처음 접속하면 검은 빈 화면과 함께 debugme라는 alert 창이 뜬다. 바로 소스코드를 확인해주었다. 소스코드에는 알아보지 못하게 난독화된 코드가 길게 작성되어 있었다. 처음 페이지에 접속했을 때 alert 창을 확인했기 때문에 alert라는 문자열을 검색(Ctrl+F)해주었다. alert라는 단어가 1개 검색되고, 이에 해당하는 b('0x1e','14cN')이 무엇을 뜻하는지 알아보기 위해 콘솔창에 복사 붙여넣기 해주었다. alert창에서 보았던 debug me를 뜻하는 것을 알 수 있었다. alert 앞에 else가 있는 것으로 보아, 앞부분을 해석해보면 플래그를 얻을 수 있을 것이다. alert 바로 앞 부분이다. 어느 위치를 가르킨다면 alert를 띄우지 않고 문제를 해결..
퍼셉트론은 복잡한 함수도 표현할 수 있다는 장점과, 가중치를 설정하는 작업은 수동적으로 진행해야한다는 단점이 있다. 이 단점을 해결하기 위해 신경망을 사용한다. 신경망은 퍼셉트론의 단점을 해결하기 위해 가중치 매개변수의 적절한 값을 자동으로 학습하는 능력을 가진다. 인공신경망이란 기계학습과 인지과학에서 생물학의 신경망에서 영감을 얻은 통계학적 학습 알고리즘이다. 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다. (출처: 위키백과) 왼쪽부터 차례대로 입력층, 은닉층, 출력층이라고 부른다. 은닉층의 뉴런은 눈에 보이지 않기 때문에 '은닉'층이라고 불린다. 퍼셉트론의 구조는 이렇게 나타냈었는데, 전에 사용했던 수식을 보..
32번 문제 화면이다. join버튼을 누르고 이름을 여러 개 눌러보니 you already voted라는 문구가 뜬다. hit에 따라 순위가 매겨져 있는 것을 보니 내가 join해서 내 닉네임이 생겼고, 1등 혹은 100으로 만들면 해결되는 문제인 것 같다. 내가 투표를 한 것을 기억하는 쿠키가 사용되는 것 같아, 쿠키를 확인해주었다. 여기에서 ok 값을 지우고 체크해주었더니 투표를 한 번 더 할 수 있었고, 또 쿠키로 들어와 내용을 지워주고 해야했다. 이 방식이 너무 번거로운 것 같아 몇 번 진행해주다가 vote_check라는 쿠키를 차단해주었더니 더이상 쿠키가 생기지 않았다.
퍼셉트론이란?? 인공 신경망의 한 종류 1957년에 코넬 항공 연구소의 프랑크 로젠블라트에 의해 고안된 알고리즘 딥러닝의 기원이 되는 알고리즘 퍼셉트론은 다수의 신호를 입력받아 하나의 신호로 출력하는데, 노드(혹은 뉴런)의 가중치와 입력치를 곱한 것을 모두 합한 값이 정해진 한계(임계값;θ)를 넘어설 때 1을 출력 뉴런이 활성화한다라고 표현하기도 한다. 넘지 못하면 0 또는 -1을 출력한다. 각 입력 신호에는 고유한 weight(가중치)가 부여되는데, 가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용한다. 즉, w가 클수록 해당 신호가 중요하다고 볼 수 있다. 여기서, 델타를 -b로 치환하면 식이 이런 식으로 바뀐다. 위의 식 두개는 기호 표기만 바뀌었지 그 의미는 동일하다. 여기서, b를 ..
문제에서 바로 소스코드를 확인해주었다. 소스코드를 잘 살펴보면 get방식으로 넣어준 id 값이 admin이 되면 문제가 해결된다. 하지만 admin이라는 문자열이 그대로 들어가게되면 no!라고 출력을 해주는 것 같다. 그래서 admin을 url 인코딩을 해주었다. url인코딩 표를 이용하여 admin을 바꾸면 %61%64%6D%69%6e가 된다. 이 값을 url에 입력해주었다. 위의 인코딩 된 값을 입력해주었으나, admin이 되면서 no!라는 문자열이 뜬다. 웹 서버와 브라우저 사이에서 데이터를 교환할 때, 브라우저는 폼에서 입력받은 데이터를 자동으로 인코딩한 값으로 보내고 php는 자동으로 디코딩하기 때문입니다. 그렇다면 위의 인코딩 한 값을 한 번 더 인코딩 해준다면 브라우저로 넘어갈 때 %61%6..
문제에 접속하면 이런 화면이 뜬다. 바로 소스코드를 확인해주었다. 소스코드를 살펴보면 onclick="this.style.left=parseInt(this.style.left,10)+1+'px' => o을 클릭하면 오른쪽으로 1픽셀 씩 이동한다. if(this.style.left=='1600px') => 이 o가 1600픽셀에 도달하면, 문제를 해결할 수 있는 것 같다. 한 번 클릭에 1 픽셀이 이동되는데, 1600번을 클릭하기엔 너무 많은 시간이 걸린다. 따라서 콘솔창에 hackme.style.left='1599px'를 입력해주면, o가 1599px의 위치로 이동하게 된다. 그리고 O를 한 번 클릭해주면 문제를 풀 수 있다.