본문 바로가기

전체 글45

LIS길이를 이분탐색으로 구해보자(python) 가장 긴 증가하는 부분수열(LIS)의 길이를 이분탐색을 이용해 구해보자 먼저 가장 긴 증가하는 부분 수열이 뭔지 이해해보자 수열: 숫자들의 나열 ex) [5,3,8,2] 부분수열: 수열안에서 몇몇 숫자들을 골라서 만든 새로운 수열 ex) [5,8,3,2] => [5,8,2] 따라서 수열 [10, 20, 10, 30, 20, 50]이 있을때 따라서 가장 긴 증가하는 부분 수열은 [10, 20, 10, 30, 20, 50]이고 길이는 4이다 이분탐색을 이용한 풀이 주어진 수열의 각 원소를 순회하면서 이분탐색을 적용해나간다 따라서 시간복잡도는 O(nlogn) 이된다 세부적인 이진탐색 과정은 아래와 같다 현재 원소를 이진 탐색을 통해 LIS 배열에 삽입할 위치를 찾는다 (LIS배열은 항상 정렬된 상태를 유지한다.. 2023. 6. 6.
Policy Gradient Methods의 구현 심층 강화학습 인 액션의 chater4내용을 나름대로 이해한내용을 바탕으로 정리해보았습니다부정확한 내용이 있다면 피드백 부탁드립니다정책망이 뭐에요?정책망은 상태를 받고 모든 가능한 동작들의 확률분포를 돌려주는 함수 최종적으로 동작을 선택하는 방식은 다음과 같다정책망이 가능한 동작 4가지에대해 확률분포를 예측한다 (각 동작의 확률을 모두 더하면 1이된다)만약 2번 동작의 보상이 가장 클것이라고 예측한다면 2번의 확률이 가장높다 이상태에서 확률분포에 따라 모델은 동작을 선택을 하게된다2번 동작이 뽑힐 확률이 가장 높겠지만 다른 동작이 뽑힐수도있다  게임소개CartPole강화학습에서 많이 사용되는 클래식한 환경중 하나이다 막대기와 수래로 구성되어있다목표: 막대가 넘어지지않고 수레를 제어하여 막대를 가능한 오랫.. 2023. 5. 28.
데이콘 자동차 충돌 분석 AI경진대회 리뷰하기 이 대회는 몇달전 참여했었던 대회이다 다만, 참여하면서 좋은결과를 내지못했고 스스로에게 부족함을 많이 느꼈다 따라서 수상자분들이 발표되면 꼭 코드를 보고 공부해보고 싶다는 생각을 했었다 이번 리뷰를 통해 다른대회에서도 적용할수있는 보편적인 무엇인가를 얻어가면 좋겠다고 생각한다 혹시라도 포스팅에 잘못된내용이 있을경우 지적해주시면 감사하겠습니다 먼저 수상자분들의 코드를 보기전에 나는 어떤 실험들을 해봤는지 최종적으로는 어떤 방식을 사용했는지 기억을되짚어보자, 수상자분들이 나와 어떤점에서 다르게 접근하고 어떤점에서 공통적으로 접근했는지 비교하기 위해서이다 제1회 코스포 x 데이콘 자동차 충돌 분석 AI경진대회(채용 연계형) - DACON 분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니.. 2023. 5. 6.
okt형태소분석기 사전 업데이트 konlpy에 있는 여러 형태소 분석기중 okt의 사전을 업데이트하는 코드이다okt에서 코드를 통한 사전수정을 지원하지않아파일의 직접적인 수정을 통한 사전업데이트만 가능한것으로 알고있다그리고 이방식은 수작업으로 여러번하기에는 꽤나 귀찮은일이다  코드는 okt사전을 수정하는 목적의 코드이지만적당히 수정하면 konlpy속 다른 형태소분석기 사전을 업데이트하는데도 쓸수있다고 생각한다 import zipfile, os'''파일경로는 환경에 맞게 수정이 필요합니다 추가적으로 운영체제 환경에맞는 파일경로작성이 중요합니다'''jar_filename = r'C:\Users\dodo7\miniconda3\Lib\site-packages\konlpy\java\open-korean-text-2.1.0.jar'output_f.. 2023. 4. 28.
facenet 임베딩 모델 구조의 구현 잘못되었거나 확실하지않은 내용이 있다면 알려주시면 정말 감사하겠습니다  목표facenet의 핵심 모델구조를 구현해보자    유명한 임베딩모델과 임베딩 모델의 활용법 유명한 임베딩 모델로는 FaceNet이 있다160*160크기의 컬러 얼굴 이미지를 입력으로 받아 128차원의 임베딩 백터를 출력한다128 차원 벡터는 입력 이미지의 얼굴 특성을 충분히 담고있다그러므로 유사한 두사진은 백터공간속에서 가깝게 위치하고있다이런점을 이용하여 좌표간 유사도를 구하는 방식으로 이미지의 유사도를 측정할수있다    Triplet Loss를 이용한 Metric Learning  Metric Learning은 객체 간의 유사성이나 거리를 고려하여 임베딩을 학습하는 방식이며Triplet Loss는 Metric Learning의 한.. 2023. 4. 28.
FL STUDIO 첫번째 곡(기초조작법 익히기) 갑자기 왜죠내가 좋아하는 아티스트중 한명인 Hinkik이어떤 작곡툴을 이용하냐는 한 일본인의 질문에 flstudio를 이용한다고 직접 댓글을 달았다!다만 포스트 작성을 목적으로 hinkik이 작곡툴을 언급한부분을 다시 찾으려했으나 못찾겠다일단 내기억속에는 확실히 있다(하하) 나도 hinkik처럼 나만의 멋진 전자음악을 만들고싶다는 생각에 flstudio에 입문하게 되었다  이글을 쓰면서 나도 배우는 과정이기때문에 정확하지않은 정보가 다수 있을수있다아 참고로 나는 그 200달러짜리 구매했다 참고바란다  교과서 암기하는것처럼 지루하게 모든 기능을 처음부터 알필요는 없다고 생각한다어쨋든 취미 아닌가 철저히 재미 위주로 간다나중에 정말 재미를 느낀다면 알아서 알게되는게 세상의 이치다  그래서 정말 필요한것 오늘.. 2023. 4. 16.
목표망(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.