목록전체 글 (219)
피너클의 it공부방

신경망은 퍼셉트론을 다층으로 쌓고 활성화 함수를 개선한 것이다. 앞의 퍼셉트론을 수식으로 표현한다면 $y = h(b + w_{1}x_{1} + w_{2}x_{2})$$h(x) = \left\{\begin{matrix} 0\quad if\,x\leq 0 \\ 1\quad if\,x> 0 \end{matrix}\right.$위처럼 된다. 위에서 h(x) 함수같이 x를 출력신호로 변환하는 함수를 활성화 함수라 한다.여기서 x는 앞의 입력신호화 가중치, 편향의 계산 결과이다.그림으로 그리면 이런 형태이다. 하지만 활성화 함수에는 여러 종류가 있다. 시그모이드 함수S자 형태의 함수이다.def sigmoid(x): return 1 / (1 + np.exp(-x)) 계단함수계단함수는 0보다 크면 1 반환하고 ..

AND와 NADN, OR 모두 같은 구조로 만들수있다.안에있는 가중치와 편향만 다를 뿐이다. 가중치 : 입력 신호의 중요도편향 : 활성화 정도를 조정하는 매개변수 def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.5 y = np.sum(w * x) + b if y > 0 : return 1 else : return 0AND는 위처럼 구현 가능하다.w는 가중치 값이다. 0.5와 0.5, 이 두값은 각각 x1, x2에 곱해진다.b는 편향이다. 입력신호에 가중치를 곱한 값에 더해줄것이다.입력값이 1과 1이라면 1 * 0.5 + 1 * 0.5 - 0.5 = 0.5가 될것이다.0.5는 0보다 크니 1을 반환하고 AND의 기능..

#include 으로 불러오고 삽입, 삭제, 탐색 모두 log(N) 삽입 방법은 크게 2개배열 처럼 넣거나 insert로 넣거나둘의 차이점은?1부터 100까지 m[10]에 배열 처럼 넣고 m[10]을 출력하면 당연히 100이 출력된다. 하지만 insert로 집어넣은 경우에는 맨 처음에 넣은 값인 1이 출력된다. insert의 경우 값이 있을 경우 그 값을 덮지 않는 것이다. 삭제 m.erase()를 통해 지울 수 있다. 없는 값을 지워도 딱히 에러는 안뜨는거같다. 탐색 탐색은 배열처럼 찾을수도 있고 find를 통해 찾을 수도 있다.find를 통해 찾은 경우에는 iterator로 반환되기 때문에 값을 출력하려면 -> 를 이용해야한다. 없는 값을 출력하면 위 처럼 나온다. map에는 순서가 없다. 들어간 순..
망할 세팅에서 하루를 보냈다.1. cannot import name skipper 이거에서 먼저 시간 날려먹었다. 파이썬 버전 3.6으로 올리고 gym버전을 0.9.5로 낮추니 에러가 안뜬다. 2. No module named 'ppaquette_gym_doom' 이걸 도데체 어디서 받아야 하는건지 pip install ppaquette_gym_doom 이걸하면 오류가 뜬다. 내용 보면 doom_py받다가 오류 뜬거 같아서 pip install doom-py해주면 또 에러 뜬다. doom_py로 해도 에러 뜬다. conda install meznom::boost-python이거 한번 콘다cmd에 넣어줬따.conda install conda-forge::sdl2이것도 넣어줬다. ---------------..

t = torch.tensor([[1, 2, 3], [4, 5, 6]])위를 출력하면위에 처럼 나온다. t = torch.tensor([[1, 2, 3], [4, 5, 6]]).gather(0, torch.tensor([[0, 1]]))위를 출력하면위에처럼 1, 5가 나온다.위와 같이 0차원에차례대로 0번이랑 1번을 가져온것이다.t = torch.tensor([[1, 2, 3], [4, 5, 6]]).gather(1, torch.tensor([[0, 1]]))그럼 0차원을 1로 바꾸면 어떻게 될까위에 처럼1과 2가 나오게 된다. 그렇다면 4, 5, 6은 출력하지 못하는 걸까?t = torch.tensor([[1, 2, 3], [4, 5, 6]]).gather(1, torch.tensor([[0, 1], ..