x

    전체 글 보기 (204)

    프로그래밍

    - 알고리즘 & 자료구조 (16)

    - 알고리즘 문제풀이 (8)

    - C++ (4)

    - JavaScript (14)

    - HTML & CSS (6)

    - Python (38)

    - Git (6)

    CS

    - 컴퓨터 구조 (1)

    - OS & 리눅스 (16)

    - 네트워크 (16)

    - DB (20)

    - 수학 (21)

    - ML (24)

    - OOP (3)

    - 기타 (11)

 
 
 
 
    ML (24)
  • 언어모델은 스스로 생각할 능력이 있을까

    지난 년 월 일 OpenAI에서 ChatGPT 서비스를 공개했다. (링크는 https://chat.openai.com/chat)언어모델은 현재까지 적혀있는 글을 입력으로 넣으면 그 글의 가장 끝에 올 확률이 가장 높은 단어를 출력하는 기능이 있는 ML 모델이다. ML 모델은 훈련 데이터셋으로부터 어떤 특징, 패턴을 추출하고 학습해 다음에 입력이 들어왔을 때 그 입력에 자신이 학습한 특징, 패턴을 반영시켜 출력...
  • 훈련 데이터에 레이블이 부족할 때

    . 준지도학습- 훈련데이터 중 일부에만 레이블이 있을 때, 레이블이 있는 데이터와 없는 데이터를 모두 활용해 ML 모델을 훈련시키는 기법을 준지도학습(semi-supervised learning, SSL)이라 한다.- 여러 준지도학습 방식이 제시되고 있으며, 모두 전체 데이터셋 중 레이블이 있는 데이터의 비율이 극히 적은 상황에서도 모든 데이터에 레이블이 있는 데이터셋에 크게 뒤지지 않는 오차율을 보인다.) ...
  • 적대적 예제

    . 개요- 특정 입력에 대해 분류 등의 작업을 처리하도록 훈련이 되어 있는 신경망이 있을 때, 어떤 입력에 아주 미세한 오차를 더해 당초 그 신경망으로부터 기대되는 결과와 전혀 다른 결과(예를 들면, 고양이 이미지에 오차를 더했더니 개미로 분류하는 경우 등)를 얻게 해 신경망 시스템을 무너뜨리는 입력을 적대적 예제(adversarial example)라 한다.. 공격의 유형- 이러한 공격 유형으로 공격자가 공...
  • 오토인코더

    * 오토인코더- 오토인코더는 깊은 신경망의 하나로, 입력 데이터가 내부 신경망의 인코더 부분을 거쳐 은닉층에 다다르면 몇가지 특정 패턴을 가진 정보들로 재해석되나 다시 디코더 부분을 거쳐 원본 입력 데이터와 최대한 비슷한 데이터로 복원되는 출력을 내는 신경망이다. 신경망을 훈련시킬 때 훈련시킬 데이터셋의 입력에 대응되는 결과가 별개로 있는 게 아니어서 대표적인 비지도학습 신경망으로 여겨지지만, 엄밀히 말해 입...
  • 추천시스템

    . 추천엔진- 서비스의 규모가 작아 서비스가 제공하는 아이템의 수가 적어 사용자가 한 눈에 모든 아이템을 파악할 수 있다면 추천엔진의 필요가 적다. 그러나 서비스의 규모가 점점 성장해 서비스가 제공하는 아이템의 수도 크게 늘어 사용자가 자신이 필요로 하는 아이템을 찾기 위해 서비스가 제공하는 검색엔진을 사용해야 할 정도 상황이라면 추천엔진의 필요도 커진다. ‘검색’이라는 활동은 사용자가 서비스 내에서 찾고자 ...
  • Pytorch

    * GPU 사용하기import torchis_available = torch.cuda.is_available() #현재 CPU가 사용 가능한지 확인한다.cuda = 'cuda' if is_available else 'cpu'device = torch.device(cuda)x = torch.randn(, , device=cuda)- device(‘cuda’) 메서드를 호출하면 이후 연산에서 사용할 프로세서를 G...
  • Hugging face tutorials

    . 추론 파이프라인Model Hub의 어떤 모델이든 pipeline()을 사용하여 텍스트 생성, 이미지 분할 및 오디오 분류와 같은 다양한 작업에 대한 추론을 쉽게 할 수 있다. pipeline()은 어떤 양식을 사용해 본 경험이 없거나 모델의 코드를 잘 알고 있지 않더라도 사용할 수 있다.파이프라인 사용법모든 작업에는 그에 관한 pipeline()이 있지만 모든 특정 작업 파이프라인을 포함하는 일반적인 pi...
  • GAN

    . 개요- 서로 다른 기능을 하는 두 개의 신경망을 이용하여, 실제로는 존재하지 않지만 실제로 존재하는 것 같은 가상의 이미지를 생성하는 신경망을 만들 수 있다. (이 두 신경망의 기능이 서로 다르기 때문에 이러한 신경망을 GAN, generative adversarial network라 한다.) 년 처음 제시되었다.- 구체적으로 다음과 같은 방식으로 생성한다.() 일반적인 classification을 수행하...
  • Semantic segmentation

    . semantic segmentation- 주어진 이미지를 픽셀 단위로 클래스를 분류하는 문제를 푸는 것을 semantic segmentation이라 한다. (이미지 내 서로 다른 객체가 서로 다른 객체인 것까지 인지할 필요는 없고 클래스가 같은지 다른지만 알아내도 충분하다.) 인물 사진을 찍었을 때 인물과 배경을 구분하는 문제, 자율주행 차량이 카메라로 외부 정보를 받았을 때 차량과 차도와 인도와 인물을 ...
  • Object detection

    . 문제 정의- classification 문제가 어떤 사진에 어떤 물체가 있는지 여부를 판별하는 문제라 하면, localiazation 문제는 그 사진에서 그 물체가 어떤 위치에 있는지, 얼만큼의 영역을 차지하는지를 구하는 regression 문제의 하나라고 할 수 있다. object detection은 사진 안에서 찾고자 하는 모든 물체의 존재 여부와 있을 경우 그 위치와 차지하는 영역의 크기를 모두 구하...
  • Transformer

    . ML 모델 이해를 위한 팁- 다음 순서를 따르는 것이 복잡한 ML 모델을 이해하는 데 도움이 된다.() 모델이 풀고자 하는 문제를 파악한다. (분류, 생성, …)() 훈련 단계가 아니라 추론 단계부터 먼저 이해한다. 즉, ‘이미 학습이 이루어진’ 모델이 어떤 입력을 받아 어떤 출력을 내는지를 먼저 이해한다.() 훈련 단계에서는 모델의 어떤 파라미터가 학습이 이루어지는지(구조가 복잡한 모델에서는 입력으로 주...
  • Word embedding

    . 개념 synonym similarity relatedness(연관성) sementic field: 특정 주제를 공유하는 단어들. 예를 들면, 의사, 간호사, 진료 같은 단어들은 ‘병원’이라는 하나의 주제를 공유한다. semantic frame: 어떤 행위를 하는 주체의 역할에 관한 단어들. 예를 들면, 장을 ...
  • 언어모델

    . 개요- 문장을 시작하는 단어 몇개가 주어질 때, 그 단어들로 시작하는 하나의 완성된 문장을 만들어낼 확률을 구하는 모델을 언어모델이라 한다.- 언어모델을 이용하여 기계번역, 맞춤법 검사, 맥락에 의존하여 정확도가 높은 음성인식 등의 문제를 풀 수 있다.. 언어모델의 확률식- 어떤 문장 \(W\)를 만들어낼 확률이 \(P(W)\)이며, \(W\)는 총 \(n\)개의 token으로 이루어져 있고 각 token...
  • 자연어 전처리

    . 여러 개념들 vocabulary: 단어의 집합. corpus: 대용량 문서들의 집합. 어떤 언어로 돼있는지, 어떤 분야의 문서들인지, 작성자가 어떤 배경이 있는지 등을 기준으로 각 corpus의 성격이 결정된다. token: 한 vocabulary를 구성하는 말의 단위. 어떤 corpus를 NLP 알고리즘의 훈련 데이터로 하기 위해서는 우선 그 corpus를 token 단...
  • Spark MLlib로 ML Pipeline 기반 ML 모델 만들기

    . 기본 개념) transformer- 입력으로 주어진 데이터프레임에 새 컬럼을 추가해 새 데이터프레임을 만드는 함수. 여러 프레임워크에서 transform()이라는 이름의 메서드로 호출할 수 있으며, 그 결과로 데이터프레임이 리턴된다.- ML 모델도 어떻게 보면 입력으로 주어진 데이터프레임에 ‘예측값’이라는 새 컬럼을 추가해 새 데이터프레임을 만드므로 일종의 transformer라고 볼 수 있다.) esti...
  • 데이터 전처리

    . 마인드- 현업에서 얻게 되는 데이터 중에 ‘깨끗한 데이터’란 있을 수 없다. 실제 데이터를 수백 개씩 일일이 살펴보며 데이터가 제대로 돼있는지 확인할 필요가 있다.- 회사의 규모가 커지면 회사의 DB에 담겨 있는 테이블 수도 어마어마하기 마련이고, 각 테이블이 각각 어떤 데이터를 담고 있는지 다 알고 있는 직원이 있을 수 없다. 이 문제를 해결하려면 각 테이블에 대한 documentation을 세심히 할 ...
  • RNN

    . RNN(recurrent neural network)- 시간에 따라 값이 변하는 순차데이터를 처리하는 신경망을 RNN이라 한다.. 순차데이터의 표현- 일반적으로 벡터를 통해 표기한다. 입력 데이터의 크기는 그 데이터가 담고 있는 시간 길이에 비례하여 증가한다.- 문장을 벡터로 표현하는 방법에는 다음과 같은 방법이 있다. bag of words: 단어의 빈도수순으로 벡터의 각 성분에 단어를 대응시키...
  • 최적화

    * 입력 데이터셋을 표준정규분포로 정규화- 예를 들어 입력 데이터의 첫 번째 성분이 m 단위의 키고, 두 번째 성분이 kg 단위의 몸무게라면, .m의 키와 .m의 키차이는 실제로는 매우 크나 값으로는 .밖에 차이나지 않는 반면, kg의 몸무게와 kg의 몸무게 차이는 실제로는 아주 크다고는 할 수 없으나 값으로는 나 차이가 나 이를 그대로 신경망에 학습을 시키면 학습이 느리게 일어나는 모습을 볼 수 있다. 이처...
  • CNN

    . 개요- deep MLP는 각 MLP 층 사이의 연결이 완전연결인데, 이 경우 학습이 매우 느리고 과적합이 발생할 수 있다. 각 MLP 층과 층 사이에 연결이 완전연결이 아니라 일부 노드끼리만 연결되는 neural network를 만들 수도 있으며 이러한 neural network를 CNN(convolutional neural network)라 한다.- CNN의 경우 격자 구조를 갖는 데이터(데이터를 구성하...
  • CS231n - 역전파

    . computational graph- layer가 여러 개인 어떤 neural network를 최적화하려면 주어진 훈련 데이터셋에 대하여 갖는 loss와 그때 각 layer의 가중치 행렬의 gradient를 계산하고 가중치 행렬의 각 성분을 수정하는 과정을 여러 번 거쳐야 한다. 이때 가중치 행렬의 gradient를 구하는 과정을 최대한 간단하게 구현하기 위해, 먼저 둘 이상의 변수를 입력으로 갖는 어떤 ...
  • 머신러닝 - 머신러닝 개요

    . 개요- 컴퓨터가 입력된 데이터를 통해 훈련을 해 같은 작업을 전보다 더 나은 성능으로 할 수 있게 된다면 컴퓨터는 그 데이터로부터 ‘학습’을 했다고 이야기할 수 있다. 이와 같은 머신러닝의 개념은 년대에 처음 등장하여 점차 구체적으로 발전하기 시작했다.- 처음에는 인간이 추출한 규칙(rule)을 기계가 학습하는 모델을 생각했으나, ()우선 인간이 사물의 모든 규칙을 알고 있는 게 아니고 ()학습 대상이 변...
  • CS231n - 손실함수

    . 손실함수- linear classification에서 좋은 결과를 내기 위해서는 보다 나은 가중치 행렬을 얻어야 한다. 이를 위해 우선 가중치 행렬의 좋고 나쁨을 정량화할 수 있어야 하는데, 보통 손실함수(loss function)의 값을 이용해 가중치 행렬의 좋고 나쁨을 수치로 정량화한다. 그리고 손실함수를 이용해서 최선의 가중치 행렬을 구하는 과정을 최적화(optimization)이라 한다.- 손실함수...
  • CS231n - 컴퓨터비전, CNN의 역사

    . 역사) 초기 역사- 년대 고양이를 통한 Hubel과 Wiesel의 포유류 시각 인지 연구. 사물의 테두리가 움직이면 그에 반응하는 단순한 세포들이 있는데 시각 인지에서는 이러한 단순한 세포들이 가장 중요. 시각 인지는 처음에는 이처럼 단순한 구조에서 시작하여 점점 복잡해져 나중에는 실제 세상을 인지. 연구 내용을 조금 더 살펴보면, ()같은 시각 인지 기능을 하는 신경세포들은 뇌의 피질의 한쪽 영역에 집...
  • CS231n - image classification

    . 이미지 간 유사도 평가 방법) L distance\[d_ (I_, I_) = \sum_P \left| I_^P - I_^P \right|\]- 크기가 같은 이미지의 같은 위치에 있는 각 픽셀이 갖는 값의 차이 절대값을 단순 합하여 이를 두 이미지의 L distance로 정의한다.- L distance는 좌표계가 달라지면 값도 달라진다는 문제가 있는데, 좌표계가 달라질 일 없는 문제에서라면 L distanc...