Artificial intelligence

    [Error] hdbscan 패키지 설치 에러

    [Error] hdbscan 패키지 설치 에러

    Error OS는 윈도우11을 사용하고 있으며 파이썬 3.6 버전을 활용해 hdbscan 패키지를 설치하려고 하던 중 에러가 발생했다. pip install hdbscan 패키지에서 요구하는 넘파이 버전이 없는 듯 하다. 해결방법 Conda를 활용하여 설치해 위 문제를 해결했다. conda install -c conda-forge hdbscan

    Attention - Query, Key, Value의 의미?

    Attention - Query, Key, Value의 의미?

    Attention이 나온 이유? Attention은 LSTM 혹은 RNN으로 만들어진 Encoder Decoder에서 나온 개념입니다. Encoder에 입력에 대한 정보를 은닉벡터로 함축시켜 전달을 하는데, 이 은닉벡터가 모든 정보를 담기 어렵다는 이유에서 탄생하게 되었습니다. Decoder에서 항상 Encoder의 마지막 은닉벡터를 활용하는데, 이 정도에다 +로 Encoder에서 현재 위치와 연관된 단어에 대한 은닉벡터를 다시한번 봐서(집중해서 - Attention) 은닉벡터로 표현하지 못한 부분까지 보려는 노력을 하게됩니다. Attention의 이해 어텐션이 계산되는 과정을 간단히 설명드리고 우리가 궁금한 Query, Key, Value를 알아보겠습니다. Encoder에서 들어온 값은 I am a s..

    Hello RL : Frozen Lake 소개 및 기본 코드

    Hello RL : Frozen Lake 소개 및 기본 코드

    Frozen Lake? Frozen Lake는 RL의 hello world와 같은 환경입니다. 게임은 굉장히 간단합니다. 4x4의 환경이 설치됩니다. (0,0) 시작지점에서 (3,3)까지 agent가 이동을 하면 게임이 종료됩니다. 이 때 환경에는 구덩이(H)가 있을 수 있습니다. 그 구덩이를 피해서 목표지점(3,3)까지 이동해야합니다. 구덩이(H)에 빠질경우 캐릭터는 죽게됩니다. (이 각각의 칸을 우리는 state라고 부르죠.) agent는 상하좌우 4개의 action을 할 수 있습니다. 그런데 이 action에 따라 원하는 방향으로 이동하지는 않습니다. 왜냐하면 얼음이기 때문에 미끄러져 다른 state로 이동할 수 있기 때문이죠. 위 예에서 출발을 할 때 아래로 가고 싶어 아래로 이동을 명령하였는데 ..

    Pytorch Dataset과 DataLoader

    파이토치에서 데이터들을 학습할 때 굉장히 유용한 기능으로 DataLoader가 있습니다. DataLoader는 파이토치에서 데이터들을 원하는 batch size로 잘라줍니다. DataLoader를 사용하면 batch size에 맞추어 학습을 굉장히 쉽게 학습을 수행할 수 있습니다. 이 때 DataLoader에 넣어주어야 하는 값이 Dataset이 됩니다. How To Use Dataset from torchvision import datasets, transforms train_dataset = datasets.MNIST( root = "data", download = True, train = True, transform = transforms.Compose([ transforms.ToTensor() ]..

    torchvision.transforms (ToTensor, Normalize, Resize, RandomCrop,Compose)

    transforms 모듈은 이미지를 학습을 위해 적절히 변환할때 사용합니다. 모듈에서 주로 사용하는 것을 소개하겠습니다. module import import torchvision.transforms as transforms transforms.ToTensor transforms.ToTensor() Pytorch의 배열은 배열구조가 C*H*W(C:채널, H:높이, W:너비)입니다. 하지만 PIL이미지와 Numpy 배열에서는 H*W*C입니다. ToTensor는 이러한 데이터의 구조를 변경해줍니다. 또한 ToTensor는 이미지 픽셀의 밝기정도를 Scale해줍니다. 밝기정도가 0~255로 표시되었다면 그 값을 0~1로 scale해주게 됩니다. transforms.Nomalize transforms.Norma..

    [Pytorch] nn.module을 상속받을 때 super().__init__()을 하는 이유

    [Pytorch] nn.module을 상속받을 때 super().__init__()을 하는 이유

    파이토치에서 클래스로 Layer나 Model을 구현해주면 항상 생성자에서 super(class이름, self).__init__()을 입력해줍니다. 왜 이것을 입력해야 하는지 궁금하여 알아보았습니다. super().__init__()이 없다면? import torch class Test(torch.nn.Module): def __init__(self): self.linear = torch.nn.Linear(3,2) def forward(self,x): return self.linear(x) Test를 위해 굉장히 간단한 torch.nn.Module을 상속받는 클래스를 만들어보았습니다. 그리고 이 클래스를 활용해 모델을 만들어보겠습니다. model = Test() 생성을 하게 된다면 AttributeErro..

    Object Detection의 개요

    Object Detection의 개요

    글을 작성하는 시기는 연구실에 조인하여 공부한 지 약 한 달이 되는 시점입니다! 머신러닝에 대한 기본적인 공부와 함께 여러 딥러닝 모델에 대하여 학습을 하며 Computer Vision의 분야인 Object Detection에 많은 관심이 생겼습니다. 이번 글을 시작으로 Object Detection에 대한 개요부터 주요 논문에 대한 리뷰까지 시리즈로 작성해보도록 할 계획입니다! Object Detection? Object Detection이란 컴퓨터가 물체를 인식하는 것을 의미합니다. 위 사진은 Object Detection의 예시입니다. 컴퓨터가 기존에 학습되어있는 모델을 바탕으로 사람과 행글라이더를 타는 사람들을 Detection 한 모습을 볼 수 있습니다. Computer Vision의 Objec..

    모델 평가(Evaluation)

    모델 평가(Evaluation)

    지난 시간에 Sklearn 라이브러리를 활용하여 데이터를 전처리하는 방법을 알아보았습니다. Sklearn 라이브러리들이 모델을 생성하고 학습하는 것을 굉장히 편리하게 해주어 누구나 쉽게 모델을 만들 수 있습니다. 그렇다면 우리가 만든 모델이 과연 어느정도의 성능을 보이는지 평가를 해야할 것입니다. 이번 글에서는 모델을 평가하는 지표들인 Confusion Matrix에 대하여 알아보도록 하겠습니다. Confusion Matrix? Confusion Matrix는 모델이 2가지 경우에 대하여 예측한 결과를 의미합니다. 즉 양성인지 음성인지를 판단한 결과를 보여줍니다. 코로나 때문에 PCR검사를 받은 경험이 있나요? PCR검사를 받으면 당일 저녁 혹은 다음날 아침에 결과 문자를 받게 됩니다. 이 때 Posit..

    Sklearn 라이브러리를 활용하여 데이터 전처리하기

    Sklearn 라이브러리를 활용하여 데이터 전처리하기

    2주간 파이썬의 Sklearn 라이브러리를 공부하였습니다. 굉장히 편리하게 데이터를 전 처리하고 모델링할 수 있는 다양한 기능들을 배울 수 있었습니다. 이번 글에는 Sklearn 라이브러리를 활용하여 데이터를 전처리하는 방법들을 익히고, 실습으로 타이타닉의 생존자를 예측하는 문제의 데이터를 전처리해보겠습니다. 문제 소개 : Titanic - Machine Learning from Disaster Titanic - Machine Learning from Disaster | Kaggle www.kaggle.com *Titanic 문제는 Kaggle의 Hello World라고 불릴 정도로 많은 사람들이 처음 Kaggle에서 머신러닝 문제를 풀 때 시작하는 문제입니다. 1912년에 타이타닉호가 빙산에 부딪히며 ..

    파이썬으로 머신러닝 시작하기

    파이썬으로 머신러닝 시작하기

    머신러닝이란? 알파고의 등장 제가 머신러닝에 관심을 갖기 시작한 계기는 알파고의 등장이었습니다. 당시 저는 컴퓨터공학과 1학년 학생이었습니다. 언론에서는 알파고와 이세돌 9단의 대국으로 뜨겁게 달구어지고 있었습니다. 알파고의 등장으로 한국에도 머신러닝 열풍이 불기 시작하며 저도 자연스럽게 머신러닝에 관심을 가지게 되었습니다. 머신러닝이란? 머신러닝은 기계가 직접 학습을 하여 결정을 내릴 수 있도록 모델링하는 방법입니다. 예를들어 이미지를 제공하면 그 이미지가 어떤 동물인지를 컴퓨터가 직접 결정하도록 만드는 것을 의미합니다. 0과 1만을 인식하는 컴퓨터가 스스로 인지하고 판단하도록 만들기 위해서 과거에는 if-then을 활용하여 구현하였습니다. 대전 알고리즘을 가이드 해주는 인공지능은 과거에도 굉장히 쉽..

    머신러닝이란?

    머신러닝이란?

    머신러닝이란? 알파고를 기점으로 인공지능에 대하여 많은 관심을 받고 있습니다. 머신러닝은 이러한 인공지능의 범주 안에 있는 하나의 기술이라고 보시면 됩니다. 과거의 인공지능은 규칙 기반으로 조건문을 활용한 하드코딩을 통해 개발이 되었습니다. 이는 특정 분야에 대해서는 인공지능이 상당히 좋은 결과를 보여주지만, 새로운 예외적인 상황이 나오면 가차없이 틀리는 문제를 일으킵니다. 오늘날의 인공지능은 데이터를 통하여 직접 학습하여 일반화된 지식을 통해 문제를 접근합니다. 이렇게 되면 새로운 상황에 접하게 되어도 그 동안 쌓아온 지식을 통해 일반화된 접근을 통해 올바른 선택을 할 수 있게되죠. 이것이 우리가 지금부터 논할 머신러닝이라는 것 입니다. 이로써 우리는 과거의 인공지능으로는 풀 수 없던 여러가지 문제를 ..