머신러닝(MACHINE LEARNING)
-
파이썬 %autoreload %matplotlib 이란?머신러닝(MACHINE LEARNING)/코드 리뷰(Code_Review) 2021. 7. 13. 22:47
1. 개요 가끔 캐글 대회 뿐아니라, 많은 코드들을 살펴보면, %load_ext autoreload 라던가, %matplotlib inline 라던가, %autoreload 라던가 하는 식의 코드들을 보았다. 그냥 머리속으로만 알고 있었었는데, 오늘 이참에 정리해야겠다 싶어 정리하는 글이다. 우선 %을 사용하는 이유는 ipython 이라는 흔히 알고 있는 주피터 노트북 등에서 사용하는 magic command 라고 생각하면 된다. 2. matplotlib inline - 흔히 제일 많이 보는 케이스로 %matplotlib inline을 표시했을 때, notebook 을 실행한 주피터 노트북 등에서 바로 도표등을 띄워주는 역활을 하게 된다. 3. %load_ext autoreload & %autoreloa..
-
정규 분포 (Gaussian Distribution)머신러닝(MACHINE LEARNING)/통계(Statistics) 2021. 6. 8. 17:26
0. 서론 - 정규분포는 18세기 후반 과 19세기 초반의 위대한 독일의 수학자 카를 프리드리히 가우스이 이름을 따 가우스 분포 Gaussinan_Distribution 이라고도 불리는데, 다음과 같은 공식을 따른다. 1. 공식 가우시안 정규분포를 그려보게 되면 다음과 같은 형태를 띄게 된다. from numpy import random import seaborn as sns sns.distplot(random.normal(size=1000), hist=False) plt.show() 2. 정규분포의 정규화(Normalized) 확인 - 정규분포가 정규화 즉, 다음을 만족시키는지 확인해보자. - 제일 간단한 형태부터 시작하기 위해서 \( u = 0 \), 즉 평균은 0일 때부터 확인해보자. - \( u ..
-
역변환 방법( Inverse CDF Technique)머신러닝(MACHINE LEARNING)/통계(Statistics) 2021. 6. 8. 14:36
0. 서론 - 컴퓨터를 쓰다 보면, 생각보다 난수를 일으킬 일들이 많이 있다. 이럴때, 보통 python 의 경우, random.random( ) 모듈을 사용하게 되면, 0~1 사이 분포의 난수가 일어나게 되는데, 그렇다면, 어떤 특정한 함수를 따르는 난수를 만들어 내고 싶다면, 어떻게 해야 할까? 라는 의문에서 이 역변환 방법(inverse CDF technique) 이 쓰이게 된다. 1. 기본적인 난수 생성기 - 앞서 말했듯, 가장 기본적인 난수 생성기는 균등분포(uniform dist.) 난수생성기이다. 따라서 이것만 가지고는 0~1 사이의 난수만 생성할 수 있지, 다른 특정한 PDF 를 가지는 난수를 생성하기는 힘들다. 하지만, 역변환 방법(Inverse CDF) 을 사용하게 된다면, 우리는 어떠..
-
[Python] with 이란머신러닝(MACHINE LEARNING)/코드 리뷰(Code_Review) 2021. 5. 17. 03:24
- 결론부터 말하자면 ,파이썬에서의 with 이란 컴퓨터에게 필요한 자원을 다시 반납 토록 하는 일이다. - 파이썬의 수많은 책들이 있지만, with을 하면 어떻게 되고 어떻게 되고, ~ 의 식의 풀이만 나열뿐 왜 사용하는지 알려주는 책은 많이 못본것 같다. - With의 경우, 제일 간단한 예제를 보게 되면, with 은 맨처음 시작할 떄, __open__ 이라는 method를 호출하고 with 구문을 빠져 나가게 되면 __exit__ 이라는 method 를 호출하게 된다. [ 다음 코드 : https://m.blog.naver.com/PostView.nhn?blogId=wideeyed 참고] class Hello: def __enter__(self): # 사용할 자원을 가져오거나 만든다(핸들러 등) ..
-
Pytorch torchvision.transforms.normalize 함수머신러닝(MACHINE LEARNING)/코드 리뷰(Code_Review) 2021. 5. 15. 00:58
- torchvision.transforms.Compose 에 주로 쓰이는 transfroms.normalize 함수는 각 channel 에 맞춰서 normalize를 시켜준다. 보통 이렇게 CNN 모델에서는 Transforms 을 시켜주는데, 이는 우리가 원하는 형태의 데이터 형태로 바꿔주기 위해서이다.. - 보통 CNN 은 transform.Normalize(( - - -),(- - - )) 을 쓰는데. transform.Normalize((mean_1, mean_2, mean_3),(std_1, std_2, std_3)) 이렇게 각 채널별로 mean 값 . std, 값을 할당해준다. - 예시를 보게 되면, - 다음과 같이 각 채널별로 0.5 0.5 0.5 을 주게 되었을때, 각각의 값들이 \( (X..
-
[Keras] Categorical_crossentrophy와 Sparse_categorical_crossentrophy머신러닝(MACHINE LEARNING)/간단하게 이론(Theory...) 2021. 5. 8. 02:15
- 케라스에서 Categorical_crossentrophy와 Sparse_categorical_crossentrophy 를 손실할수로 쓰겠지만, 두개의 차이는 엄연히 다르니 구분을 잘 해주어야 한다. - 먼저 Keras의 Loss 함수에서는 여러가지 인수들이 주어지는데, 이를 잘 구분해주어야 한다. 안그러면, 결과값에 영향을 많이 미치기 때문이다. 0. 인자 (Class Variables) 두개의 함수에서는 variable 로 from_logits 과 reduction 을 주게 되는데 이에 대해서 알아보자. 1. from_Logits - Keras API 에서는 from_Logits값이 Default(기본값)으로 False가 되어있습니다. 자 그럼 이 인자가 무슨 역활인지 알아봅시다. model 의 출..
-
정사영 (orthogonal Projection) 이란? 그리고 Rasso의 이해머신러닝(MACHINE LEARNING)/선형대수(Linear Algebra) 2021. 5. 5. 00:37
1. 정의 - 저번 포스팅을 보게 되면, 우리가 원하는 \(x\hat{} = (A^{T}A)^{-1}A^{T}b\) 로 표현이 가능했고, col A 공간에 있는 Ax 는 B 벡터를 colA 공간에 정사영으로 표현이 되므로 $$ b\hat{} = f(b) = Ax\hat{} = A(A^{T}A)^{-1}A^{T}b $$ 로 표현이 가능했다. - 이제는 좀 더 일반적인 식을 살펴보자 2. 계산식 만약 2차원 평면에서의 벡터가 있다고 했을 때, \( y\hat{} = proj_{L}y = \frac{yu}{uu}u\) 로 표현이 되는데, 다음 그림을 보자. - 그림을 보게 되면 y 라는 벡터를 Span(u)라는 공간에 정사영을 시키게 되면, \(y\hat{}\) 은 u와 y를 정사영한 벡터에 u의 크기벡터로 ..
-
선형변환(Linear_Transformation) 이란?머신러닝(MACHINE LEARNING)/선형대수(Linear Algebra) 2021. 5. 3. 23:52
1. 정의 -In mathematics, a linear map (also called a linear mapping, linear transformation, vector space homomorphism, or in some contexts linear function) is a mapping between two vector spaces that preserves the operations of vector addition and scalar multiplication. - 위키디피아에 정의된 내용은 다음과 같은데, 수식과 같이 표현하자면, - 벡터 필드 K 내부에 U와 V 2개의 벡터공간이 있다고 해보자. 그렇다면, 식 F_matrix: V->W로 바꿔주는 F_matrix(행렬) 에 대해 F(C*..