欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World
728x90
반응형

DS | Data Science 67

[프로그래머스] 고득점 Kit - 해시 : 베스트앨범(파이썬)

1. 문제설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 1) 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 2) 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 3) 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 2. 제한 사항 genres [i]는 고유번호가 i인 노래의 장르입니다. plays [i]는 고유번호..

[ML] Transfer Learning and Hyper Parameter Tuning

머신러닝 이론을 공부하고 실제 문제를 머신러닝으로 해결하려고 할때, 직면하는 문제 중 하나가 '미리 학습된 모델들이 많은데, 그 모델을 활용할 수 없을까'이다. 만약 다른 사람들이 학습시켜놓은 머신러닝 모델들을 활용할 수 없고 backbone 모델 정도만 불러와서 매번 새로 학습하거나 한다면 AI 분야가 이렇게까지 발전할 수 없을 것이다. Transfer Learning은 이러한 문제를 해결하기 위해 미리 학습된 모델(Source Model)을 내가 풀려는 문제의 데이터로 학습한다는 뜻이다. 간단하게 남이 만든 모델에 내가 가진 데이터를 학습시킨다는 말인데, 쫌 더 자세히 알아보자. 1. Transfer Learning : 전이학습 Transfer learning은 우선 Source Task를 지정해야 ..

[Pytorch] hook & apply

1. hook hook은 패키지화된 코드에서 custom 코드를 중간에 실행시킬 수 있도록 만들어 놓은 인터페이스이다. 주로, 아래와 같은 경우에 사용한다. 프로그램의 실행 로직을 분석 프로그램에 추가적인 기능을 제공 def program_A(x): print('program A processing!') return x + 3 def program_B(x): print('program B processing!') return x - 3 class Model_Package(object): def __init__(self): self.programs = [program_A, program_B] ################################################# self.hooks = [..

[Gradient] Autograd - .backward(gradient = external_grad)

import torch a = torch.tensor([2., 3.], requires_grad=True) b = torch.tensor([6., 4.], requires_grad=True) Q = 3*a**3 - b**2 external_grad = torch.tensor([1., 1.]) Q.backward(gradient=external_grad) 간단한 벡터값의 역전파 예시 코드이다. 일반적으로 업데이트 값이 스칼라인 경우는 Q.backward()로도 gradient가 업데이트 되지만 위와 같이 Q가 벡터 값으로 나오는 경우, Q.backward(gradient = external_grad)라고 external_grad를 명시해주어야 한다. 왜 그럴까?? 여러 참고자료와 구글링을 통해 알아낸 점은..

[Pytorch] Parameter : 매개변수 / Buffer

1. Parameter란 정의로는 매개변수, 머신러닝에서는 모델이 사용할 수 있는 매개변수를 모델 내부에서 저장하는 것을 말한다. 일반적인 변수 지정 방식으로는 모델에서 반복적으로 로드할 수 없기 때문에 torch.nn.parameter.Parameter를 사용하여 torch 내부에 저장한다. 2. 모델 내부에서 Parameter 사용 import torch from torch import nn from torch.nn.parameter import Parameter class Model_Param(nn.Module): def __init__(self, in_features, out_features): super().__init__() self.W = Parameter(torch.ones((out_fea..

[Pytorch] 파이토치 연산자 : 사칙연산, 인덱싱

Pytorch는 벡터, 행렬 등의 다양한 연산을 지원한다. 기본적인 사칙연산부터 선형대수, 나아가서는 머신러닝에 중요한 모듈을 구성할 수 있는 메서드를 포함한다. 1. torch 사칙 연산 1) torch.add() torch.add()는 '+'로 대체 가능하며 벡터 혹은 행렬의 해당 위치의 값을 더해준다. 모양이 같은 벡터나 행렬이 아니어도 각 위치에 대해 값이 연산된다. import torch A, B = torch.tensor([2]), torch.tensor([3]) torch.add(A,B) >> tensor([5]) tensor([2])와 tensor([3]) 길이가 1인 1차원 텐서이므로 연산 결과는 tensor([5])의 1차원 텐서로 나온다. torch.add(A,7) >> tensor(..

[ML/DL] SOTA가 뭔가요

SOTA는 State Of The Art의 약자로 현재 최고 수준의 결과를 말한다. 캐글 같은 콘테스트 사이트나 기술 관련 글을 보다 보면 나오는 단어이다. 모델 구축 시에 완전히 처음부터 학습하게 되면 시간이나 CPU/GPU 자원 등의 리소스 소모가 커서 개인으로써는 접근하기가 어렵기 때문에 pre-trained 모델을 많이 사용하게 된다. 이때 SOTA는 'pre-trained 모델 중 현재 최고 수준의 결과를 가진 모델'이 된다. https://brunch.co.kr/@kakao-it/64 [카카오AI리포트]연구자들이 열광하는 ICML,NIPS 학회 논문 메타 분석에서 나타나는 연구 흐름 | 저희는 왜 ‘카카오 AI 리포트'를 내고 있을까요. 이번 호는 이 같은 질문에 대해 또 다른 답을 찾아가는 ..

[RNN] Recurrent Neural Network : 순환신경망

MLP와 같은 방식은 input 데이터로 위치나 순서와 상관없이 형성된 데이터를 사용하여 모델을 학습한다. 반면에 CNN은 regional feature를 학습하기 때문에 일정 크기의 kernel을 활용하여 Convolution 연산으로 학습을 한다. 하지만 소리, 문자열, 주가 등의 시퀀스 데이터는 독립적인 데이터라(i.i.d)는 머신러닝의 가정을 위배하는 경우가 많기 때문에 학습이 원활하게 이루어지지 않는 경우가 있다. local 적인 측면에 집중한 CNN 또한 이러한 시퀀스 데이터에 적용하기가 쉽지 않다. 이러한 문제를 해결하기 위해 순환신경망(RNN : Recurrent Neural Network)이라는 개념이 나오게 되었다. 1. 시퀀스 데이터 (Sequence data) : 시퀀스 데이터는 데..

[CNN] Convolutional Neural Network : 합성곱 신경망

1. 다층신경망(MLP : Multi Layer Perceptron) 다층신경망(MLP : Multi Layer Perceptron)은 각 뉴런들이 선형모델과 활성함수로 모두 연결된(fully-connected) 구조 MLP는 i에 의존적이며, i가 변화할 때마다 가중치도 변화하게 된다. 이는 가중치 행렬 W가 모든 i에 대한 가중치를 행으로 합쳐둔 행렬이기 때문이다. 이것과는 다르게 모든 i에 대해 일정한 크기의 커널(kernel)을 입력벡터 상에 일정한 간격을 두고 움직이며 연산을 하는 합성곱 신경망(CNN : Convolutional Neural Network)가 등장했다. 2. 합성곱 신경망(CNN : Convolutional Neural Network) CNN은 특히 이미지 처리 분야에서 발전하..

[MLE] Maximum Likelihood Estimation : 최대가능도 추정법

Likelihood란 데이터가 특정 분포로부터 만들어졌을 확률 = 관측된(주어진) 데이터가 특정 분포(모수)로부터 만들어졌을 가능성 * likehood = 가능성 (O) 확률 (X) MLE : Maximum Likelihood Estimation : 어떤 모수가 주어졌을 때, 원하는 값들이 나올 가능도(likelihood)를 최대로 만드는 모수를 추정하는 방법 1. MLE (Maximum Likelihood Estimation : 최대가능도 추정법) 1) 가정 - 데이터 집합 X는 정규분포를 따른다. - 데이터 집합 X가 독립적으로 추출되었을 경우 : 로그 가능도를 최적화할 수 있다. - 원리 관측값이 정규분포를 따를 때 , 그 원점의 위치를 추정 2) 로그 가능도 - 최적화 : 로그 가능도를 θ = (..

728x90
반응형