본문 바로가기

전체 글48

목표망(target network)이 있는 Q학습 예제를 실행하기위해 필요한 코드(Gridworld, GridBoard등등)및 전체 코드는 책 깃허브를 참고하자https://github.com/DeepReinforcementLearning/DeepReinforcementLearningInAction/tree/master/Chapter%203 목표망이 있는 Q학습목표망과 경험재현이 추가된 딥Q학습의 관계도를 그려보았다강화학습에서 경험재현에 관한 내용은 이전 포스팅에 적어놓았다 https://doingcomputer.tistory.com/22Q 신경망과, 목표 Q신경망 총 두가지 모델을 사용하게되는데둘의 용도는 각각 X값예측과  y값 예측으로 다르다역전파는 오로지 Q신경망에서만 일어나며목표 Q신경망은 일정 학습 주기마다 Q신경망으로부터 가중치를 업데이트 받.. 2023. 3. 18.
백준 랜선자르기(1654번) 파이썬 풀이 이진탐색 카테고리에 속한 문제 정답코드K, N=map(int,input().split())cable_list=[]for _ in range(K): cable_list.append(int(input()))def how_many_cable(cable_size, cable_list): cable_num=0 for cable in cable_list: cable_num+=(cable//cable_size) return cable_numdef binary_search(K, cable_list, target): low=1 high=max(cable_list) while low=target) & (cn2=target: low=middle+1.. 2023. 3. 17.
파국적 망각 방지: 경험재현 예제를 실행하기위해 필요한 코드(Gridworld, GridBoard등등)는 책 깃허브를 참고하자https://github.com/DeepReinforcementLearning/DeepReinforcementLearningInAction/tree/master/Chapter%203파국적 망각파국적 망각은 서로 아주 비슷하지만그 결과는 상당히 다른 두 게임 상태에 대해서 학습이 제대로 일어나지않는것을 말한다예제를 보면 게임1과 게임2는 비슷하기때문에 이전에 배운 가중치들이 새 가중치로 대체된다 (망각) 경험 재현기존 학습방법이 action을 취하고 그후 바로 학습(역전파)이 진행되는 온라인(실시간) 학습이었다면기본적으로 경험재현은 온라인 학습에 배치 훈련 방식을 도입하는것이다 경험목록과 배치1. 상태 s에서.. 2023. 3. 13.
넘파이에서 리스트처럼 곱하기 적용하고싶을때 import numpy as nparr1 = np.array([1])arr2 = np.repeat(arr1, 4)print(arr2) # [1 1 1 1] 2023. 2. 25.
re.search 위치 여러개 찾기 TL;DRimport re[(m.start(0), m.end(0)) for m in re.finditer('match', text)]세부내용re.search를 이용해 내가 찾고자 하는 단어의 위치를 알수있다 하지만 하나밖에 찾지못한다s = 'cat cat cat cant cat'm = re.search('cat', s)print(m.span())>>> (0, 3)re.finditer은 정규식과 매칭되는 모든 문자열을 반복가능한 객체로 return한다for i in re.finditer('python', '3python3, python'): print(i) >>>  출처https://stackoverflow.com/questions/3519565/find-the-indexes-of-all.. 2023. 2. 23.
백준 수찾기(1920번) 파이썬 풀이 전체 코드# 수 찾기N=int(input())A=list(map(int,input().split()))M=int(input())B=list(map(int,input().split()))def is_there(min_idx, max_idx, array, num): middle_idx=(min_idx+max_idx)//2 if (array[middle_idx]==num or array[max_idx]==num) or array[min_idx]==num: print(1) return if max_idx-min_idx==1: print(0) return elif array[middle_idx]num: return.. 2023. 2. 22.
numpy where 기능소개 넘파이 array를 대상으로만 사용가능하다 두가지 기능이있다첫번째 인덱스 반환조건식이 주어졌을때 말그대로 어디(where)있는지 알려준다 (출력이 튜플인건 맘에에 안든다)형식은 np.where(조건) 이며, 조건에 부합하는 인덱스를 출력한다import numpy as nparray=np.arange(17,27)print(array)print(np.where(array>20))>>> [17 18 19 20 21 22 23 24 25 26]>>> (array([4, 5, 6, 7, 8, 9]),)인덱스가 깔끔한 형태로는 출력되지않아 재가공이 필요하다array = np.array( [[ [1001,2],[3,4] ], [ [1087,2],[1,1]] ] )print(array)print(np.where(arr.. 2023. 2. 21.
pytorch summary() 기능 pytorch conv3d모델이다class BaseModel(nn.Module): def __init__(self, num_classes=13): super(BaseModel, self).__init__() # super().__init__()->python 3 에서만 작동 # super(자기자신,self).__init__()->python 2,3 모두 작동 # 성능차이는 없음 self.feature_extract = nn.Sequential( nn.Conv3d(3, 8, (1, 3, 3)), nn.ReLU(), nn.BatchNorm3d(8), nn.Max.. 2023. 2. 21.
Pooling 레이어의 이해 풀링을 왜하는가1. 풀링은 입력이 작게 이동해도 근사적으로 불변이 되게 하는데 도움을 준다2. 데이터 차원의 감소pooling의 커널사이즈를 2*2, stride 2로 설정했을때 최종적인 데이터 크기를 1/4로 줄일수있다일정영역의 강한 피쳐만을 남길수있으며 신경망의 계산이 빨라진다 풀링의  기본설정pooling시 대부분 maxpool을 이용한다stride는 커널사이즈와 동일하게 설정하는것이 default값이다 pooling과 convolution레이어의 차이점학습해야할 가중치가없다풀링후 채널수가 변하지 않는다 pooling의 문제maxpooling으로 일정 영역의 강한 feature만을 다음 레이어로 넘기면 처음에는 적은 계산량으로 좋은 성능을 유지할 수 있을지 몰라도 깊은 레이어로 갈수록 정보유실이 커.. 2023. 2. 21.