티스토리

AI/ML 기술 블로그
검색하기
블로그 홈

블로그 홈

AI/ML 기술 블로그

pangyo-datascientist.tistory.com/m
신고

Data Science 관련 지식들에 대해 정리하는 공간입니다.

구독자
1
방명록 방문하기
공지 자주 오셔서 피드백 주세요 ~ 모두보기
반응형

주요 글 목록

  • Sigmoid vs Softmax 이진분류(Sigmoid) 이중 분류는 어떤 물체인지 표현할 필요 X 다중분류(Softmax) 다중 분류는 '어떤 물체'인지 표현해야 함 결국 정답을 어떻게 표현할 것인가? -> one hot encoding 실제 알고리즘 출력을 확률로 변환 하기 위해 softmax 사용 정답과 출력을 비교 결국 하위 식이 1이 되게끔 학습을 하는것 (밑에 시에서는 1 X 0.7) 결국 잘맞추면 1 , 못 맞추면 log식이 (1x 무한대) 무한대로 치솟는 형태로 나타남 공감수 1 댓글수 1 2023. 11. 1.
  • 최적화 개념과 gradient descent 1. 최적화 개념 딥러닝 분야에서 최적화란 손실함수 값을 최소화하는 파라미터를 구하는 과정. 딥러닝에서는 학습데이터를 입력해서 네트워크 구조를 거쳐 예측 값(y^)을 얻음 이 예측 값과 실제 정답을 비교하는 함수가 손실함수, 즉 모델이 예측한 값과 실제값 차이를 최소화하는 네트워크 구조의 파라미터를 찾는 과정이 최적화 2. 기울기 개념 경사 하강법을 알아보기 전에 기울기를 먼저 이해하고 넘어가야 됨. 기울기란 미분 가능한 N개의 다변수 함수 f를 각 축이 가리키는 방향마다 편미분 한 것 2. 경사 하강법 개념 경사 하강법이란 딥러닝 알고리즘 학습시 사용되는 최적화 방법 중 하나 딥러닝 알고리즘 학습 시 목표는 예측값과 정답값 차이인 손실 함수의 크기를 최소화 시키는 파라미터를 찾는 것 학습데이터의 입력을.. 공감수 0 댓글수 0 2023. 9. 23.
  • 퍼셉트론 개념 퍼셉트론 개념퍼셉트론은 인공신경망의 구성요소로서 다수의 값을 입력받아 하나의 값으로 출력하는 알고리즘. 입력값 X 가중치, 편향(bias)은 퍼셉트론으로 전달됩니다. 퍼셉트론은 입력받은 값을 모두 합산하는데, 합산된 결과값을 가중합이라 부릅니다. 앞서 생물학적 뉴런은 신경세포체에 저장한 신호의 크기가 임계값(세타)보다 클 때 신호를 출력한다고 했습니다. 퍼셉트론에서도 가중합의 크기를 임계값(세타)과 비교하는 활성화 함수(Activation Function)를 거쳐 최종 출력값을 결정. weight의 크기는 bias의 크기로 조절할 수 있으므로, bias가 퍼셉트론의 출력값 y를 결정짓는 중요 변수인 셈 퍼셉트론 종류퍼셉트론의 종류는 input layer ,output layer 사이에 hidden lay.. 공감수 0 댓글수 0 2023. 9. 22.
  • 손실함수 , 활성함수 정리 Loss function 개념 loss function,objective function,cost function(손실함수)는 지도 학습시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수즉 학습 중에 알고리즘이 얼마나 잘못 예측하는 정도를 확인하기 위한 함수로서 최적화(optimization)를 위해 최소화 하는 것이 그 목적인 함수 . 손실함수를 통해 모델 학습 중에 손실이 커질 수록 학습이 잘 안되고 있다고 해석할 수 있고, 반대로 손실이 작아질 수록 학습이 잘 이루어지고 있다고 해석합니다. 손실 함수는 성능 척도와는 다른 개념으로, 성능 척도는 학습된 알고리즘의 성능을 정량적으로 평가하기 위한 지표로서 accuracy,f1스코어 등이 있음 즉, 성능 지표는 알고리즘의 학습이 끝났을 때.. 공감수 0 댓글수 0 2023. 9. 6.
  • Embedding layer와 Embedding Vector의 Output 차이 정리 Word Embedding Vector Skip - gram : 주변 단어가 비슷한 단어일수록 비슷한 임베딩 값을 갖도록 학습 Word2vec 하이퍼파라미터의 설정 값에 따라 각자 단어들 사이가 의미하는 벡터 값이 달라 질 여지가 많음 특수한 상황을 제외하고(product2vec 같은 것을 구현할 때 사용), 실제 NLP에서 드물게 활용됨 딥러닝은 END TO END를 지향하므로 중간 산출물을(embedding vector) 단독으로 쓰이는 것이 쉽지 않음 Embedding Layer 무작위로 특정 차원으로 입력 벡터들을 뿌린 후 학습을 통해 가중치들을 조정해 나가는 방식 즉, 단어 사이의 관계를 반영하는 방법이 아님 원핫 인코딩 된 이산 샘플의 벡터를 받아, 연속 벡터로 변환 높은 차원의 벡터를 효율적.. 공감수 1 댓글수 0 2023. 2. 14.
  • Pytorch 코드 컨셉 파이 토치 기본 스타일 - 모듈 클래스로 신경망 생성 - 데이터셋 클래스로 데이터를 불러와 학습 * 모듈 클래스로 신경망 만들기 __init__() -> 신경망 구성요소 정의 forward() -> 신경망 동작 정의 1. 파이 토치가 제공하는 모듈을 불러와 __init__()함수 안에 정의 Class Net(nn.module): def __init__ (self): # 신경망 구성요소 정의 2. forward() 함수에 신경망의 동작을 정의(__init__()함수에서 정의한 모듈을 연결하거나 필요한 연산등을 정의) def forward(self, input): #신경망의 동작 정의 return output * 데이터셋 클래스로 데이터를 불러와 학습하기 1. __init__함수는 학습에 사용할 데이터를 불.. 공감수 0 댓글수 0 2022. 11. 23.
  • Embedding Vector 과정 및 정의 1. 텍스트를 숫자로 바꾸는 작업 단어에 번호를 매기고 번호에 해당하는 요소만 1 ,나머지는 0 N개의 단어가 있다면 각 단어는 한 개의 요소만 1인 N차원의 벡터로 표현 ( 벡터 포현에 어떤 단어 끼리 유사하고, 반대인지 단어와 단어 관계가 전혀 드러나지 않음) 이 부분을 좀 더 똑똑하게 바꾸려고 예를 들면 왕↔ 여왕을 남↔녀 관게라는 것을 벡터로 알아낼 수 있기 위해 만든 것이 임베딩 모델 (word embedding) 2. Word2Vec 현대적인 자연어 처리 기법들은 대부분 이 임베딩 모델에 기반을 두고 있다. 그렇다면 어떻게 벡터에 단어의 의미를 담을 수 있을까? 우리는 어떤 대상이든 대상의 속성들을 표현하고, 그것을 바탕으로 모델 생성 예를들어 버섯을 조사해 놓은 데이터가 있다면 이것은 버섯이.. 공감수 0 댓글수 0 2022. 11. 19.
  • Pytorch 의 nn.module 상속의미 간단한 layer 구성 예시 class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(1, 20, 5, 1) self.conv2 = nn.Conv2d(20, 50, 5, 1) self.fc1 = nn.Linear(4*4*50, 500) self.fc2 = nn.Linear(500, 10) def forward(self, x): x = F.relu(self.conv1(x)) x = F.max_pool2d(x, 2, 2) x = F.relu(self.conv2(x)) x = F.max_pool2d(x, 2, 2) x = x.view(-1, 4*4*50) x = F.relu(self.fc1(x)) x .. 공감수 1 댓글수 0 2022. 11. 19.
  • Dynamic programming *Learning -> 환경의 모델을 모르지만 상호작용을 통해서 문제를 푸는 것 * value function이 작은 문제들의 해 1. optimal policy를 구하기위해서 policy를 랜덤하게 설정하고 이것이 수렴할 떄까지 반복할때 value function을 최대화 하는 것이 최적의 policy다 라는 의미 어느정도 수렴 (무한대) 가 되면 value function을 알 수 있음 value iteration은 앞의 두가지 과정을 한꺼번에 하는 것 공감수 0 댓글수 0 2022. 5. 15.
  • Markov Reward Process 개념 설명 return -> 리워드의 감가삼각을 적용하여 합친 것 ex) Reward 4개가 있다면 4가지 행동들에 대해서 일어날수 있는 확률들과 보상값들의 평균적인 보상이 value function -> + 감가삼각까지 고려 *s= state value function을 정의했으면 판단지표가 설정이 된건데 밸류펑션을 직접적으로 정의를 하는것이 bellman Equation s -> s` (위의 그림은 이전스테이트에서 다음스테이트의 관계식을 설명하는 식, state transition matrix) 공감수 0 댓글수 0 2022. 5. 15.
  • 강화학습 (Reinforcement Learning) 강화학습이란 -> 어떤 환경안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법 supervised learning -> 답을 알려주고 모델 학습을 시키고 이후에 인퍼런스를 하는구조 unsupervised learning -> 라벨이 없지만 데이터의 특징을 스스로 분석을해서 군집을 나누는 구조 Reinforement learning -> 데이터들은 이미 확보가 되어있고 그것을 분석하는 과정으로 지속적으로 변하는 환경에대해 옳은 결정이면 + 옳지않으면 - 와 같은 reward 시스템 즉 어떠한 action에 대해 Rule을 스스로 만들어 가는 과정이라고 생각하면 됨 강화학습의 예시 -> 쥐가 지렛대를 통해 먹이를 먹는 과정으로 함수를.. 공감수 0 댓글수 0 2022. 5. 13.
  • Word2VeC (Cbow , Skip-gram) * Sparse Representation 벡터 또는 행렬(matrix)의 값이 대부분이 0으로 표현되는 방법 -> 희소표현 -> 이것은 각 단어간 유사성을 표현 할 수 없음 그래서 나온 것이 단어의 '의미'를 다차원 공간에 벡터화하는 방법인 분산표현이 나옴 이렇게 분산 표현을 이용하여 단어의 유사도를 벡터화하는 작업 -> 워드 임베딩(embedding) * 분산 표현(Distributed Representation) 기본적으로 분포 가설(distributional hypothesis)이라는 가정 하에 만들어진 표현 방법 -> '비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다'라는 가정 분포 가설에 따라서 저런 내용을 가진 텍스트를 벡터화한다면 저 단어들은 의미적으로 가까운 단어가 되고 원핫이 아.. 공감수 2 댓글수 0 2021. 4. 14.
  • BERT의 학습 원리 및 transferlearning BERT : Pre-training of Deep Bidirectional Trnasformers for Language Understanding 구글에서 개발한 NLP(자연어처리) pre-trained model 로 모든 자연어 처리 분야에서 좋은 성능을 내는 범용 language model 2. 데이터가 충분히 많다면 Embedding이 성능에 큰 영향을 미치는데- 임베딩이 잘 된 단어들이 훈련과정에서 당연히 좋은 성능을 낼 수 밖에없음 3. 데이터의 전처리 임베딩을 Word2Vec, GloVe, Fasttext 방식을 많이 사용했지만, 요즘의 고성능을 내는 대부분의 모델에서 BERT를 많이 사용 4.기존 단방향성 모델은 성능 향상, 문맥 파악에 한계점이 존재했었고, 이를 해결하기 위해 Bert는 양.. 공감수 3 댓글수 0 2021. 4. 14.
  • keras - Image generator Keras에서는 이미지 데이터학습을 위해 패키지를 제공 , 그 중 하나가 ImageDataGenerator 클래스. np.expand_dim -> 이미지 파일을 불러와서 다차원 배열로 변환할 때 사용 np.squeeze -> (1,3,1) -> (1,3) : 배열에서 1차원인 축을 제거 하는 것 이미지는 모델에 (batch_size,height,weight,channel) 이렇게 들어가야 해서 차원을 늘려야함그런데 일단 이미지를 불러오기위해 (height,weight) 만 input으로 집어넣음batch size는 1만 있으면 안되고 (28.28) 에다가 channel 까지 늘려주어야함 Feature Extraction에서 이미지가 가지고있는 특징,패턴을 알아가는 것이고 Classification에서 예.. 공감수 1 댓글수 0 2020. 11. 27.
  • 전통 데이터마이닝 vs 딥러닝 1.2.3 Time-series Learning "정확성 vs. 설명력 반비례 관계 존재" * 데이터마이닝 알고리즘 : KNN RF SVM 등은 조금씩 정확성이 상승하지만 그만큼 결과가 왜 그렇게 나왔는지 설명해주는 포인트는 부족해짐 * 실제로 Tree계열 알고리즘은 최대한 데이터를 세분화 시켜서 구분을 짓는것 -> 구분을 Ratio를 보면서 변수의 특성을 추론 하는 것이지 각각의 변수가 모델의 정확성에 얼마나 기여했는지는 표시하지 못하는 것이 현실 * 최근에 화두인 DNN(딥러닝)은 정확성이 높음과 반대로 불운하게도 설명력은 거의 없다라고 할정도로 이론적 근거가 뚜렷하게 있지가 않다.. (점추정 형태로 정확도가나왔다)이지 왜 그런 정확성이 나왔는지 통계적인 범위가 나왔다거나 이런것 이없음 bias나 v.. 공감수 0 댓글수 0 2020. 10. 4.
  • Hypothesis, Cost, Loss Function 가설 함수 : H(x) = W * X + b -> H(x) = Y Predict 손실함수 : W * X + b - Y -> 손실 = Y Predict - Y 손실의 총합은 3개씩 짤라서 ex1) W=0.5 ,b =0.5 -> -2+(-3.5)+(-5)=-10.5 ex2) W=1,b=1 -> -1+-2+-3 = -6 ex3) W=2,b=1 -> 0+0+0 =0 -> 최고의 알고리즘을 구하기 위해서는 손실의 총합이 0에 가깝게 만드는 W 와 B를 구할 수 있었음 손실함수 (W=2,b=1) = W * X + b – Y = (2X + 1 – Y)2 But , 손실의 총합이 0이 되게끔 만드는 것이 최적의 해이지만 -1+0+1 = 0 과 같은 오류가 나올 때가 있음 그래서 나온 해법이 아래와 같이 손실 함수에 제.. 공감수 1 댓글수 0 2020. 8. 30.
  • 최적화 알고리즘 - Gradient Descent 학습 매개변수 - a,b가 조금식 달라짐 손실함수(lost function, cost function)의 예 : MSE (평균제곱에러) , Cross entropy error (교차엔트로피 오차) 가능한 모든 수를 대입해서 출력 값을 확인해보는 것 - 여러문제들로인해 실제 사용 불가 이렇게 많이 대입하는 것이 아니라 적게 대입하고 최적값을 찾을 수는 없을까? 해서 나온게 Gradient Descent GD는 1.시작점은 랜덤하게 정해줘야함 2. 사진의 시작점을 미분하면 음수가 나왔기에 왼쪽으로 가면 더 내려가겠구나를 알 수있음 3. 왼쪽으로 내려가다보면 경사하강법을 통해 최저값을 알아 낼 수 있음 학습률(learning rate,a) , (a * 기울기) 해서 이동함 그래서 학습률 a 가 너무작거나 크지.. 공감수 0 댓글수 0 2020. 6. 30.
  • LDA -linear Discriminant Analysis 가정 1. 각 숫자 집단은 정규분포 형태의 확률분포를 갖는다 2. 각 숫자 집단은 비슷한 형태의 공분산 구조를 갖는다 * 1,2,3 을 잘나누는 방법은? LDA 결과 얻게되는 Decision Boundary 특징 1. 기본적으로 평균의 차이를 가장 크게하는 축 -> 차이를 극대화하려면 두 평균 Vector의 차이 벡터를 이용 2. 두 분포의 각각의 분산은 최소화 * 결국 분산대비 평균의 차이를 극대화 하는 Boundary를 찾고자 하는 것 공감수 2 댓글수 0 2020. 6. 26.
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.