본문 바로가기

분류 전체보기27

블로그 이전 https://star77sa.github.io/ Time Series star77sa.github.io 블로그에 코드 작성을 용이하게 하기 위해 주피터노트북 파일을 그대로 변환시켜주는 Quarto 블로그를 제작하여 해당 블로그로 이전합니다. 2023. 8. 28.
시계열 분석(Time Series Analysis) Time series analysis is the endeavor of extracting meaningful summary and statistical information from points arranged in chronological order. 시계열 분석 관련 도서 : https://www.oreilly.com/library/view/practical-time-series/9781492041641/ Practical Time Series Analysis Time series data analysis is increasingly important due to the massive production of such data through the internet of things, the digi.. 2023. 8. 25.
[확률론] 1. Probability and counting 1.1 Why study probability? - 수학은 확실성의 논리이며 확률은 불확실성의 논리이다. list of applications: statistics : 확률은 통계를 위한 기초이자 언어이다. 데이터를 사용하여 세상에 대해 배울 수 있는 다양한 강력한 방법을 가능하게 한다. computer science: Randomized algorithms은 실행되는 동안 무작위 선택을 하며, 많은 중요한 응용 분야에서 현재 알려진 결정론적 대안(deterministic alternatives)보다 더 간단하고 효율적이다. 확률은 또한 알고리즘의 성능을 연구하는 데 필수적인 역할을 하며, 머신러닝, 인공지능에서 중요한 역할을 한다. Life: 인생은 불확실하고 확률은 불확실성의 논리이다. 인생에서 결정.. 2023. 8. 24.
[Pytorch] 파이토치 사전학습 모델 사용법 목차 transfer learning / fine-tuning 1. torchvision 2. PyTorch Hub 3. Model Zoo 4. Huggingface 먼저 사전학습과 관련된 두 가지 용어를 정의하겠다. transfer learning / fine - tuning transfer learning : 특정 분야에서 학습된 신경망을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용하는 방법. 학습 데이터의 수가 적을 때 효과적 fine tuning : 기존에 학습되어 있는 모델을 기반으로 아키텍처를 새로운 목적에 맞게 변형 이미 학습된 모델의 가중치를 미세하게 조정하여 학습시키는 방법 전이학습이나 파인튜닝을 하기 위해선 사전에 학습된 모델이 필요하다. 다행히 파이토치 자체에서나 다.. 2023. 5. 15.
[Pytorch / Tensorflow] GPU 확인, 특정 GPU 사용 방법 사용가능한 GPU 살펴보는 법 (ubuntu terminal / anaconda terminal 등) $ nvidia-smi "CUDA_VISIBLE_DEVICES"를 통해 cuda가 볼 수 있는 GPU 제한하기 import os os.environ["CUDA_VISIBLE_DEVICES"] = "3" 별도의 설정을 하지 않으면 cuda는 GPU 0번을 사용하려 한다. GPU:n번 을 사용하려면 번호를 n으로 지정해주면 된다. 위의 예시에서는 GPU:3 이 사용된다. CPU 강제사용을 원하는 경우 -1로 번호를 선택해주면 된다. Pytorch import torch print(torch.cuda.is_available()) # False = cpu # True = gpu 사용가능 사용 예시 : devic.. 2023. 5. 8.
libssl.so.10: cannot open shared object file: No such file or directory huggingface의 transformers를 설치후에 from transformers import AutoTokenizer 를 사용하였더니 다음과 같은 오류가 발생하였다. RuntimeError: Failed to import transformers.models.auto.tokenization_auto because of the following error (look up to see its traceback): libssl.so.10: cannot open shared object file: No such file or directory 허깅페이스 공식사이트에서 conda를 사용하여 transformers를 설치할 때 다음과 같이 conda install -c huggingface transform.. 2023. 5. 4.
[컴퓨터비전] Super Resolution Super Resolution Super Resolution : 저해상도 영상을 고해상도 영상으로 변환하는 작업을 의미 Image Super Resolution은 저해상도(Low Resolution) 이미지를 고해상도(High Resolution) 이미지로 변환 시키는 문제를 의미. TV 영상 화질 개선, MRI, CT 이미지 개선, 범죄 예방을 위한 CCTV 화질 개선 등 다양한 분야에서 활용됨. Image Super-Resolution 문제의 어려움 - Image Super-Resolution은 유일한 정답이 존재하지 않는 ill-posed problem 존재. - 저해상도 이미지를 고해상도로 복원할 때 정답이 단 1개만 존재하지 않음 딥러닝 모델을 적용한 Image Super-Resolution C.. 2023. 5. 1.
Linux에서 Anaconda 설치 Linux - Anaconda 설치 해당 사이트에 가서 다운로드 링크를 복사합니다. https://www.anaconda.com/download#downloads Free Download | Anaconda Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com $ wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh 다운로드한 Anaconda3-2023.03-Linux-x86_64.sh 을 bash 쉘로 실행해줍니다. $ .. 2023. 4. 25.
vscode 주피터 커널 등록 / CUDA에 맞는 torch 설치 VScode 주피터 커널 등록 가상환경 생성 후 vscode 주피터에서 쓰고 싶으면 커널에 등록해줘야함. $ conda create -n [가상환경이름] python=3.8 $ pip install ipykernel $ python -m ipykernel install --user --name [가상환경이름] --display-name [가상환경이름] + 터미널에서 가상환경이 안뜨는 경우 ctrl + shift + p → Python: select interpreter -> 가상환경 선택! CUDA에 맞는 torch 설치 $ nvcc --version 으로 쿠다 버전 확인 후, torch, torchvision 해당 쿠다에 맞게 install 이전버전 https://pytorch.org/get-start.. 2023. 4. 21.
COCO, Pascal VOC data format (Object detection) COCO Dataset : JSON Pascal VOC : XML COCO Dataset format 각 섹션에 대해 살펴보자. info : 데이터 세트에 대한 정보를 제공 licenses : 데이터 세트에 사용된 다양한 이미지 라이선스 목록을 제공 categories : 각 카테고리 ID는 고유해야한다. 범주는 상위 범주에 속할 수 있다. 예를 들어, 꽃과 과일을 식별하는 데이터 세트가 있는 경우 꽃은 슈퍼 카테고리가 될 것이고 장미, 백합, 튤립은 detect 하고자 하는 꽃의 이름이 될 것 이다. Images : 데이터 세트의 모든 이미지 목록을 포함한다. 이미지 ID는 고유해야 한다. flickr_url, coco_url, data_captured는 선택사항이다. annotations : 데이터 .. 2023. 4. 21.
[논문 리뷰] ResNet(2016) Abstract - 신경망이 깊어지면 학습하기 더욱 어려워진다. 이 논문은 residual learning 프레임워크을 통해 학습을 쉽게 하는 방법을 제안한다. - VGG 네트워크보다 8배 깊은 152 레이어 깊이의 residual network를 평가했으며, 더 낮은 복잡도를 가진다. - ILSVRC 2015 분류 문제에서 1위를 달성했다. 1. Introduction - 네트워크 깊이는 이미지 분류에서 중요하다. - 주요한 문제였던 기울기 소실 / 폭발은 normlizaed initialization과 intermediate normalization layers에 의해 해결되었다. - 하지만 성능 저하(degradation) 문제가 발생하는데, 이는 오버피팅에 의해 일어나는 것이 아니다 layer의 .. 2023. 3. 9.
[논문 리뷰] VGGNet(2015) 논문 제목 - Very Deep Convolutional Networks for Large-Scale Image Recognition VGGNet은 2014년 ILSVRC에서 GoogleNet에 이어 2위를 차지한 Image Recognition Model이다. Abstract - Convolutinal network의 깊이가 정확도에 미치는 영향을 조사한 논문이다. - 주요한 contribution : 매우 작은 3x3 콘볼루션 필터를 가진 아키텍쳐를 사용하여 깊이를 증가시키고 이를 평가 - 깊이를 16 - 19 층으로 설정 - ImageNet Challenge 2014에서 Localisation 분야 1위, Classification 분야 2위를 달성 1. Introduction - 커다란 공공 이미.. 2023. 3. 2.
VSCode SSH 원격서버 접속하기 1. Extensions에서 Remote Development를 설치합니다. 2. Remote Explorer에서 Remote를 선택 후, SSH에서 +를 눌러줍니다. 3. ssh [ID]@[ip주소:포트번호]를 입력합니다. 4. SSH configuration file을 저장할 장소를 선택합니다. 5. Remote Explore에서 Connect to Host in New Window를 선택합니다. 6. 서버 Platform을 선택합니다. (Linux, Window, macOS) 7. 비밀번호를 입력합니다. 2023. 2. 15.
[컴퓨터비전] 컴퓨터 비전의 모든 것 (3. Seg & Det - 2) 네이버 부스트코스의 '컴퓨터 비전의 모든 것' 정리 내용입니다. Object Detection Computer Vision 분야에는 가장 간단한 Image Classification부터 Semantic Segmentation, 그리고 더 발전된 task인 Instance Segmentation, Panoptic Segmentation등의 task들이 있다. 이때 각 개체들을 구분하기 위해서는 본 강의에서 소개할 Object Detection 기술이 필요하다. 따라서 Object Detection은 Semantic Segmentation을 보다 근본적인 scene understanding 기술이라고 보면 될 것 같다. What is Object Detection? Object Detection은 class.. 2023. 2. 13.
빅데이터혁신공유대학 사업단 교과목개발 - 통계적사고와사회 동영상 제작 가이드(feat. 다빈치리졸브) 개인적으로 작성한 빅데이터혁신공유사업단 교과목 개발 작업 메뉴얼입니다. 작업해야하는 모듈과 이눅의 절을 매칭시킵니다. 양적변수 두개 : 산점도와 상관관계(6)에서 6-1-1. 컴퓨터로 산점도 그리기를 예시로 들어보겠습니다. 각 절의 첫번째 모듈에는 강의소개 영상이 있으므로 강의 소개 영상을 추가하여야 합니다. 즉, 예시에선 6-1-1 모듈에 2.5절의 강의소개 영상을 추가하여야 합니다. (6-1-2 ... 6-3-3 은 추가 할 필요 X) 강의 내용을 확인하고 해당 모듈임을 확인하기 쉽게 이름을 바꿔줍니다. 공유된 구글 슬라이드의 학습 목표를 참고하여, 공유받은 모듈화 양식 페이지 ppt를 수정합니다. 이후 ppt의 슬라이드를 jpg로 내보내기 위해 파일 > 내보내기 > 파일 형식 변경 > JPEG 파일.. 2023. 2. 10.
[컴퓨터비전] 컴퓨터 비전의 모든 것 (3. Seg & Det - 1) 네이버 부스트코스의 '컴퓨터 비전의 모든 것' 정리 내용입니다. Semantic Segmentation What is Semantic Segmentation? 앞서 살펴보았던 Image Classification이 이미지 단위로 분류를 수행하는 거라면, Semantic Segmentation은 픽셀 단위로 분류를 수행하는 것이라 볼 수 있다. 하나의 픽셀이 사람에 속하는지, 오토바이에 속하는지, 자동차에 속하는지 등을 분류하는 task 이때 주의할 점은 여러 명의 사람을 각각 사람1, 사람2, ... 이런 식으로 한명한명 구분하는 것이 아니라 모두 "사람"으로 분류한다는 점이다. Where can Semantic Segmentation be applied to? 그렇다면 Semantic Segmentat.. 2023. 2. 5.
[컴퓨터비전] 컴퓨터 비전의 모든 것 (2. 컴퓨터 비전과 딥러닝 - 2) 네이버 부스트코스의 '컴퓨터 비전의 모든 것' 정리 내용입니다. 2. 컴퓨터 비전과 딥러닝 영상 인식의 이해 Image Classificaiton (2) : 대표 모델 Problems with Deeper Layers Going Deeper with Convolutions AlexNet과 VGGNet이 등장하면서 연구자들은 네트워크가 깊을수록 receptive field가 커지고, 더욱 복잡한 관계에 대해 학습이 가능하다는 강력한 특징들을 가진다는 것을 확인하였다. 그렇기 때문에 네트워크를 더욱 더 깊게 쌓으려는 움직임이 이뤄졌는데, 과연 네트워크를 단순히 깊게 쌓는다고 해서 무조건 성능이 향상될까? Hard to Optimize 단순히 네트워크를 깊게 쌓게된다면 최적화하기 어렵다는 문제가 발생한다. 대.. 2023. 2. 5.
[컴퓨터비전] 컴퓨터 비전의 모든 것 (2. 컴퓨터 비전과 딥러닝 - 1) 네이버 부스트코스의 '컴퓨터 비전의 모든 것' 정리 내용입니다. 2. 컴퓨터 비전과 딥러닝 데이터 부족 문제 완화 Data Augmentation Neural network는 데이터에 포함된 정보를 압축하여 weight로 주입하는 모델 즉 모델이 데이터를 기반으로 학습되기 때문에 데이터의 퀄리티에 따라 성능이 좌우 허나 현실의 데이터는 모두 bias가 존재. 가령 인터넷 상에 존재하는 수많은 이미지 데이터를 활용한다고 했을 때, 사람이 촬영한 이미지는 대부분 사람이 보기 좋은 구도로 촬영되었기 때문에 bias가 데이터에 존재한다고 볼 수 있을 것 또한 이 세상의 모든 데이터를 확보하는 것은 불가능하기 때문에, 실제로 사용하게 되는 데이터는 real data distribution에서 샘플링된 일부라고 볼.. 2023. 2. 5.
[컴퓨터비전] 컴퓨터 비전의 모든 것 (1. 컴퓨터 비전의 시작) 네이버 부스트코스의 '컴퓨터 비전의 모든 것' 정리 내용입니다. 1. 컴퓨터 비전의 시작 머신러닝 : Input → Feature extraction → Classification → Output 딥러닝 : Input → Feature extraction + Classification → Output 머신러닝은 사람이 Feature을 추출해내지만 딥러닝은 자동으로 이루어진다. End-to-end로 학습! 사람이 일일이 특징을 분석하는 것과 Gradient descent가 대응하는 관계. 데이터에서 중요한 정보를 추출하는 작업에서 후자가 전자보다 훨씬 낫다. Image Classification (1) : 개념 Image Classification은 주어진 입력 이미지를 특정 클래스로 분류하는 task. .. 2023. 2. 4.
[Python] 줄 바꿈 없이 계속 출력하기 머신러닝이나 딥러닝을 학습시키다 보면, 한 줄에서 지속적으로 얼마나 학습이 되었는가를 표시하는 프린트문을 본 적 있을 것이다. print(f'{원하는 문구가 들어있는 변수}\r', end='') 핵심은 \r 과 end=''이다. \r의 역할은 줄의 처음으로 되돌아가라 라는 뜻이며 end=''는 원래 끝이 \n으로 끝나던 것을 아무것도 없이 끝나게 해준다. 한자리에서 값이 바뀌면서 출력되는 모습을 볼 수 있다. 2023. 1. 19.
[Python] AttributeError: 'NoneType' object has no attribute 'copy' opencv를 사용하던 중 AttributeError: 'NoneType' object has no attribute 'copy' 라는 오류가 발생했다. 원인은 경로에 한글명이 들어가있던 것. 영어로 경로들을 바꿔주니 정상작동하였다. 2023. 1. 19.
LaTeX로 영문 CV 작성하기 (feat. Overleaf) LaTeX는 프로그램 소스코드를 작성하듯 논문을 작성할 수 있도록 도와주는 문서 작성 시스템인데, 이 LaTex를 Overleaf라는 사이트를 이용하면 쉽게 논문을 공유하고 편집할 수 있다. https://www.overleaf.com/ Overleaf, Online LaTeX Editor An online LaTeX editor that’s easy to use. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more. www.overleaf.com 가입이 되어있지 않은 경우 가입을 하고, 로그인의 경우는 우측 상단의 바를 눌러 로그인을 해준다. 가입은 구글이나 연구자번호 ORCID로 .. 2023. 1. 18.
[머신러닝] 앙상블(ensemble) 학습 핸즈온 머신러닝을 공부한 내용을 정리하였습니다. 앙상블 학습과 랜덤 포레스트 무작위로 선택된 수천 명의 사람에게 복잡한 질문을 하고 대답을 모은다고 가정하자. 많은 경우 이렇게 모은 답이 전문가의 답보다 낫다. 이를 대중의 지혜(wisdom of the crowd)라고 한다. 이와 비슷하게 일련의 예측기(즉, 분류나 회귀 모델)로부터 예측을 수집하면 가장 좋은 모델 하나보다 더 좋은 예측을 얻을 수 있을 것이다. 일련의 예측기를 앙상블이라고 부르기에 이를 앙상블 학습이라고 한다. 앙상블 방법의 예를 들면 훈련 세트로부터 무작위로 각기 다른 서브셋을 만들어 일련의 결정 트리 분류기를 훈련시킬 수 있다. 예측을 하려면 모든 개별 트리의 예측을 구하면 된다. 그런 다음 가장 많은 선택을 받은 클래스를 예측으로.. 2023. 1. 17.
[Python] 헷갈렸던 문법(코딩테스트 / 프로젝트) [문자열, str] replace 함수 my_string = "ABCB" my_string.replace('B', '') -------------------------- 'AC' [ List ] index 함수 리스트에서 해당 원소의 위치가 어딘지 알려주는 함수 a = [11,10,12,13,20,31,11,10,10,11] print(a.index(10)) ----------------------------------- 1 Join 함수 리스트를 문자열로 ''.join(list_name) del 함수 삭제하고 싶은 값을 인덱스로 지정합니다. l = list(range(10)) print(l) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] del l[0] print(l) # [1, 2, 3,.. 2023. 1. 17.
[conda] 아나콘다 가상환경 세팅하기 딥러닝을 하기 위해 다양한 패키지를 설치해야 하거나 패키지의 호환성 문제 등 가상환경을 매번 새로 세팅해줘야 하는 경우가 있다. 개별로 설치하기에는 복잡하고 시간이 오래 걸리므로 아나콘다를 통해서 패키지를 관리하는 것이 편리하다. 우선 Anaconda 홈페이지로 가서 Anaconda를 설치한다. https://www.anaconda.com/products/distribution Anaconda | Anaconda Distribution Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 사용자의 .. 2023. 1. 17.
컴퓨터비전 용어 정리 IoU (Intersection over Union) 2개 영역 사이의 중첩되는 정도를 측정. 이는 Object detector가 실제 Ground truth와 예측결과(Predicton)가 얼마나 정확히 겹치는 지를 계산하여 예측이 얼마나 잘 되는지를 측정. Ground-truth를 데이터의 label값으로 생각하면 이해가 쉬움 AP (Average Precision) CNN의 모델 성능 평가 지표 Precision = TP/(TP+FP) 정확도. 검출 결과 중 옳게 검출한 비율 Recall = TP/(TP+FN) 재현율. 실제 옳게 검출 된 결과물 중에서 옳다고 예측한 것의 비율 TP : 예측한 것 중 정답인 것 TP + FP : 예측한 것 TP + FN : 실제 정답인 것 일반적으로 Precisio.. 2023. 1. 17.
DeepFaceLab 사용 방법 (Window) 이번에 대한상공회의소 주관 WE-MEET Project에 참여하게 되었다. 맡은 주제는 '인공지능기반 쌍방향 자율대화가 가능한 디지털 휴먼 개발' 이며 소속된 팀은 딥페이크 팀이다. 딥페이크 생성을 위해 DeepFaceLab이란 오픈소스를 사용하게 되었는데 이 오픈소스의 사용법을 기록한다. 프로그램 다운로드 https://github.com/iperov/DeepFaceLab GitHub - iperov/DeepFaceLab: DeepFaceLab is the leading software for creating deepfakes. DeepFaceLab is the leading software for creating deepfakes. - GitHub - iperov/DeepFaceLab: DeepFac.. 2023. 1. 16.