전체 글 20

[RNN] Language Model 정의와 N-gram Model

오늘은 RNN 이전의 초기 Lanuage Model의 방식에 대해서 다룰 것이다.Language Model?Language Model이란 다음에 올 단어에 대한 예측을 의미한다.문장이 주어지면 바로 다음 단어를 확률에 따라 예측하는 방식이다.이걸 수학적 의미로 풀어보자면, 조건부 확률에 의해 x(1), x(2).. 뒤에 다음 단어 x(t+1)의 확률 분포를 계산하는 것으로, x(t)가 현재 시간의 단어라고 가정한다면, x(t+1)은 바로 다음 시간의 단어라고 볼 수 있다.이 방식 자체를 Language Model이라고 할 수 있다.(뒤에서 다룰 것이지만 모든 모델이 Language Model이라고는 볼 수 없다.) n-gram Language Model초기 Language Model은 count기반으로 ..

[RNN] 단어 의미 모델링

본격적으로 RNN을 다루기 전에, 그 전에 나왔던 단어 의미 모델링이라는 하는 개념부터 다루겠다.이후 Language Model, 그 다음 RNN 순으로 다룰 예정이다.RNN이 나오게 된 배경은 자연어 처리에 관련된 번역 task에 집중되어 있었다. 자연어 처리 요구사항사람들은 번역, 질의응답 등 다양한 자연어 처리 과제를 해결하고 싶어하였음.- 언어별 서로 다른 특성을 효과적으로 처리한다.- 다양한 언어, 장르, 스타일에 맞는 일반적 처리 방법을 만든다.- 높은 정확도와 더불어 구축 시간과 런타임 시 계산 효율성이 타당해야 한다. 단어 의미 모델링처음은 단어로 시작하였으며, 대표적인 예시가 바로 WordNet이다.WordNet은 Synonym(동의어)와 hypernym(상하관계)를 고려하여 유사한 특징..

[논문 리뷰] 논문 리뷰 리스트

최근 학부 연구생을 하면서 읽어둔 논문을 리뷰할 필요가 있다는 생각이 들었다.그 과정에서 연구하면서 꼭 읽어야하는 논문과 내가 필요한 논문 사이트를 정리하면 좋겠다는 생각이 들어 이 글을 적는다. 1. awesome-deep-learning-papers2012년부터 2016년까지 발표된 논문 중 다양한 연구에 활용할 수 있는 획기적인 딥러닝 논문 100편을 정리한 깃허브 레포지토리https://github.com/terryum/awesome-deep-learning-papers GitHub - terryum/awesome-deep-learning-papers: The most cited deep learning papersThe most cited deep learning papers. Contribut..

논문 리뷰 2024.11.15

[Conda][아나콘다] Conda 설치 및 주요 명령어

최근 새로운 conda 버전으로 환경을 만들었는데 저번 cuda 버전 충돌이 일어나는 오류가 발생하였다.다시 일일이 conda 환경을 만들거나 지우기 위해서 검색하는 것이 너무 번거로워 이 기회에 정리하게 되었다.1. Conda 설치제일 쉽다. 해당 링크로 들어가서 그냥 설치만 하면 된다.https://www.anaconda.com/download/success Download Now | AnacondaAnaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.www.anaconda.com 2. 콘다 명령어 정리..

Machine Learning 2024.08.26

[머신 러닝] 가중치 (W), 편향 (Bias)

인공지능을 공부하면 처음 가중치 (W), 편향 (Bias)에 대한 단어가 계속 나오는데이번에는 가중치와 편향에 대해서 알아볼까한다.가중치 (Weight)각 입력 신호가 결과 출력에 미치는 중요도를 조절하는 매개 변수 → 입력 값에 곱해지는 수활성화 함수에 따라 기울기를 증가시킴 (기울기가 커질수록 모델에 더 많은 영향을 미치게 됨)처음 들어온 데이터 (입력층)에서 다음 노드로 넘어갈 때 모두 같은 값이면 계속 같은 값이 나오기 때문에 입력 값에 곱해주면서 비중을 두고 다음 은닉층 (hidden layer)로 전달해주는 것이 목표이다. 편향 (Bias)뉴런의 활성화 조건을 결정해주는 매개변수 → 활성화 함수에서 설정된 임계값을 얼마나 쉽게 넘게 할 것인지 결정(편향이 커질수록 그만큼 활성화 함수의 임계값을..

[머신 러닝] 퍼셉트론과 인공 신경망

최근 교내 학부연구생을 하고 관련 프로젝트들을 진행하느라 블로그 작성이 뜸해졌다.다시 기초 개념을 정리하면서 배웠던 내용들을 다시 상기할까 한다.이번에는 머신 러닝이 처음 나올 때의 개념들을 하나씩 설명하려고 한다.퍼셉트론과 뉴런뉴런은 우리 뇌속에 있는 형태. 퍼셉트론은 이를 수학적으로 모델링한 것이다.결국 하나하나 노드로 되어 있는 것이 퍼셉트론이고 뉴런이라고 할 수 있다. 신경망가중치 설정을 사람이 계속 해야되는 문제가 있다.인간의 뇌와 유사하게 뉴런들을 연결하는 형태를 신경망이라고 부른다.가중치는 추후에 다뤄보도록 하겠다. 그냥 Neural Network도 사람의 뇌처럼 신경망으로 구성되어 있다고 보면 된다. 인공 신경망의 종류일반적으로는 DNN, CNN, RNN으로 구분된다.이정도만 알아도 인공 ..

GPU를 local에서 사용하자 - CUDA, PyTorch 설치 및 버전 호환

논문을 살펴보고 해당 demo를 local에서 돌려보고 싶을 때 필요한 PyTorch 버전과 CUDA 버전이 다르다는 것을 확인했다.그리고 무엇보다, 우리가 쓰고 있는 컴퓨터의 GPU을 사용하기 위해서는 CUDA와 PyTorch를 사용해야 하며, 둘의 버전이 서로 호환되어야 사용할 수 있다. 관련 자료들을 참고하면서 도움을 받긴 했지만 내용들이 너무 분리되어 있어서 하나로 정리하고 이 글을 쓰게 되었다. PyTorch GPU 호환 확인이게 제일 중요하고, 사실 이게 되면 local GPU를 바로 사용 가능하다는 뜻이다.(근데, 일반적으로는 처음일때는 CUDA가 설치되어 있지 않은 상황이라 안될 것이다.)python -c "import torch; print(torch.cuda.is_available())..

Machine Learning 2024.08.09

[머신 러닝] 선형 회귀

선형 회귀 (linear regression) 이란어떤 독립 변수와 종속 변수들과의 관계를 선형 관계 (1차 함수)로 가정해서 모델링하는 지도학습 알고리즘이다.그리고 변수의 개수에 따라 단순 선형 회귀, 다중 선형 회귀로 분류할 수 있다.아래의 식은 Linear Regression 선형 관계식의 기본형이다.$$ y = \beta_{0} + \beta_{1} x_{1} + \beta_{2} x_{2} + \epsilon $$y: 종속 변수, βk :회귀 계수, Xk:독립 변수, ε: 오차항(모델으로 설명할 수 없는 부분)X1까지만 존재하면, 단순 선형 회귀 분석이라 할 수 있다. Linear Regression의 Residual(잔차)종속 변수는 관찰의 결과에서 나오는 확률 변수이다. 이에 오차를 포함한다..

[머신 러닝] 회귀와 분류 차이

지도 학습과 비지도 학습의 차이회귀와 분류를 알아보기 전에, 지도 학습과 비지도 학습의 차이를 알아보아야 한다.회귀와 분류는 지도 학습 안에 속해있기 때문이다. 지도 학습말 그대로 정답이 있는 데이터를 활용해서 데이터를 학습하는 것이다.입력 값 (X data)이 주어지면 입력 값에 대한 Label (Y data)를 주어 학습시키는 방식이다. 비지도 학습지도 학습과 달리 정답 라벨이 없는 데이터를 비슷한 특징끼리 군집화해서 새로운 데이터에 대해 결과를 예측하는 방법이다.라벨링 되어 있지 않은 데이터를 넣는 것이므로 학습해야 될 분량이 조금 더 많아질 수 밖에 없다.지도 학습에서 적절한 피처를 찾아내기 위해 전처리 방법으로 비지도 학습을 이용하기도 한다.아래는 지도학습과 비지도학습의 대표적인 알고리즘을 정리..

딥러닝과 머신러닝의 차이

인공지능에 대한 관심최근 많은 개발자들이 인공지능을 활용하여 필요한 코드를 수정하거나 제작한다.그리고 다양한 기업들도 인공지능 경쟁에 뛰어들고 있다. 이제는 인공지능과 함께 사는 세상이 된 것 같다.필자도 이에 따라 머신러닝에 대한 기초부터 쌓아놓아야 실제로 활용할 때 큰 도움이 된다고 느꼈다.앞으로 머신러닝에 대한 내용을 정리할 것이고, 주로 나도코딩의 머신러닝, 그리고 밑바닥부터 시작하는 딥러닝,스탠포드의 머신러닝 정규강좌 (CS224N)을 통해 많이 참고할 것이다. 딥러닝과 머신 러닝의 차이그렇다면 딥러닝과 머신러닝 차이는 무엇인가? 제일 근본적인 것은 컴퓨터가 인간의 뇌처럼 스스로 학습하는 것이 딥러닝이라 할 수 있다.인간의 뇌처럼 신경망이 이루어져서 학습이 되는지 안되는지의 차이라고 볼 수 있다..