본문 바로가기
728x90
반응형

분류 전체보기194

시그모이드(로지스틱) 함수와 소프트맥스 함수 시그모이드 함수 $$ p(x) = \frac{1}{1+e^{-z}} $$ 시그모이드 함수의 성질(속성) $ z $가 $ \infty $로 갈 때, $ e^{-z} $는 0으로 수렴하므로 $ p(x) $는 1로 수렴한다. $ z $가 0일 때, $ e^{-z} $는 1이므로 $ p(x) $는 0.5가 된다. $ z $가 $ -\infty $로 갈 때, $ e^{-z} $는 $ \infty $로 발산하므로 $ p(x) $는 0으로 수렴한다. 시그모이드 함수의 유용성 시그모이드 함수는 0~1 사이의 값을 가진다. 이것은 확률로 표현하기 좋으므로 0과 1, 두 개의 값 중 하나를 고를 때 유용하게 쓰인다. ex) 이진 분류, 어떤 한 가지 사건이 일어날 확률 시그모이드 함수를 이용해 로지스틱 회귀를 풀어나가는 .. 2022. 4. 14.
뉴럴 네트워크(Neural Network)의 구조 1,2,3,4,5,6 -> $ \beta $ 바이어스 -> $ \varepsilon $​ 딥러닝의 구조 보통 바이어스와 활성화함수는 그려넣지 않는다. 2022. 4. 14.
선형회귀모델로 보는 가중치(기울기,절편) 찾기 ; 경사하강법(GD) 경사하강법 ( Gradient Descent ) 손실함수가 최소가 되는 파라미터(모델의 가중치)의 값(기울기가 0인 곳)을 찾기위한 방법 어느 한 점 $ \theta_j^{(n)} $에서의 순간기울기를 구해본다. $ \theta_j^{(n)} $에서의 순간기울기의 반대 방향($ -\frac{\partial}{\partial \theta_j} J(\theta^{(n)}) $)으로 조금 이동($\gamma$)시킨다. 위의 과정을 순간기울기가 0으로 수렴될 때까지 반복한다. 위의 과정을 공식으로 나타낸다면 아래와 같다. $$ \theta_j^{(n+1)} = \theta_j^{(n)} - \gamma \frac{\partial}{\partial \theta_j} J(\theta^{(n)}) $$ 여기서 $ \.. 2022. 4. 14.
선형회귀모델로 보는 가중치(기울기,절편) 찾기 ; 최소제곱법(OLS)과 손실함수(Loss function) 실제 $i$번째 데이터 $x_i$, $y_i$ 일반적인 선형 회귀 모델 $$ y = \omega_0 + \omega_1 x_1 + \omega_2 x_2 + ... $$ 특징이 1개이고 1차항인 선형 회귀 모델 $$ y = \omega_0 + \omega_1 x_1 $$ 예측하는 선형 회귀 모델 $ \hat{y} = y$의 추정치, 예측값 $$ \hat{y} = \hat{\theta}_0 + \hat{\theta}_1 x_1 + \hat{\theta}_2 x_2 + ... $$ 특징이 1 개이고 1차항인 선형 회귀 모델 $$ \hat{y} = \hat{\theta}_0 + \hat{\theta}_1 x $$ 오차 $$e = y - \hat{y}$$ 손실함수 Loss function $J$ $$ J = \.. 2022. 4. 14.
데이터 표준화, 정규화 일반적으로 표준화와 정규화는 거희 같은 뜻으로 사용된다. 데이터 표준화 Data Standardization 보통 데이터를 수집하면 세계 곳곳에서 자료를 수집하기 때문에 단위 선택, 대소문자 구분, 약칭 활용 등 여러 가지 원인에 의해 다양한 형태로 표현되어 있다. 따라서 동일한 대상을 표현하는 방법을 일관성있게 데이터를 포맷하는 과정을 말한다. 1. 단위 환산 같은 데이터셋 안에서 서로 다른 측정 단위를 사용한다면, 전체 데이터의 일관성 측면에서 문제가 발생한다. 따라서, 측정 단위를 동일하게 맞출 필요가 있다. 흔히, 영미권에서는 주로 마일, 야드, 온스 등을 사용하고 있는데, 한국에서 사용하는 미터 평, 그램 등으로 변환하는 것이 좋다. 2. 자료형 변환 보통 파이썬에서 CVS, 엑셀, JSON, .. 2022. 4. 13.
인공지능(AI)을 이해하기 위한 수학 기초: 미분 미분 기호 y를 미분한다. $ y' $ y를 x에 대해서 미분한다. $ \frac{dy}{dx} $ 함수 $f(x)$의 도함수 = 함수 $f(x)$를 미분한다. 함수 $f(x)$를 $x$에 대해서 미분한다. $ \frac{d}{dx}f(x) $ 또는 $ \frac{d}{dx}f $ 또는 $ f'(x) $ 미분계수 : 어느 한 점에서의 미분값 점 a의 미분계수 = $f'(a)$ = 점 a에서 접선의 기울기 미분법 a,b,n가 상수인 $y=ax^n+b$ 의 경우 상수는 미분하면 0이되므로 b는 0이 되어 사라지고, $$ \frac{dy}{dx} = a \cdot n \cdot x^{n-1} $$ 이 된다. 기본 법칙 $ y = f(x)+g(x) = (f+g)(x) $일 때, $$ \frac{dy}{dx} =.. 2022. 4. 12.
인공지능(AI)을 이해하기 위한 수학 기초 : 행렬, 로그, 지수, 시그마 행렬의 표현 행렬의 크기 : m x n $A = a_{ij}$ , 1=< i =< m , 1=< j = 2022. 4. 12.
pandas ) 특정 요소 변경 replace() 함수 DataFrame/Series.replace(to_replace=None, value=NoDefault.no_default, inplace=False, limit=None,regex=False, method=NoDefault.no_default) to_replace의 값을 value로 대체한다. 시리즈의 값들을 다른 값들로 유동적으로 대체한다. 업데이트해야할 위치를 지정해야하는 .loc 또는 .iloc와는 다르다. 매개변수 to_replace : str(문자열), regex(정규 표현식), list(리스트), dict(딕셔너리), Series(시리즈), int(정수형), float(실수형), None 대체될 값을 찾는 방법이다. 숫자형, 문자열 or 정규 표현식: 숫자형numeric : 같은 값을 갖는 .. 2022. 4. 12.
PATH를 추가하지 않고 간편하게 원하는 가상환경 실행하기(windows) path목록이 너무 많은 게 싫어서 path에 conda나 python 등을 넣지 않았다면, cmd나 터미널에서 가상환경에 들어갈 때 일일이 경로를 적어서 activate를 실행할텐데, 이런 경우 간단하게 cmd파일을 만들어서 실행하면 매번 경로를 입력하지 않고도 빠르게 가상환경에 들어갈 수 있다. 예를 들어 아나콘다 base가상환경에 들어가는 cmd파일을 만든다고 한다면 conda_base_venv.cmd(파일명은 마음대로 확장자만 .cmd로) 와 같이 파일을 만들고 C:/Users/사용자명/anaconda3/Scripts/activate 위와 같이 가상환경 활성화파일 경로를 적어주고 터미널에서 실행해주면 간단하게 가상환경에 들어갈 수 있다. 이 방법을 이용한다면 python만을 사용할 때 가상환경을 .. 2022. 4. 8.
만약 커널삭제를 하지 않고 아나콘다를 재설치했다면... 만약 커널삭제를 하지 않고 아나콘다를 재설치했다면 주피터 랩이나 노트북을 실행해 커널목록을 봤을 때 이전에 만들어 둔 커널이 그대로 있는 것을 볼 수 있다. 하지만 이 커널의 가상환경정보는 아나콘다를 삭제하면서 가상환경정보도 같이 지워버렸을 경우 실행할 수 없게 되고, 커널삭제 명령어로도 에러가 발생하며 지워지지않는다. 이러한 경우 아래 경로로 가서 보면 삭제되지않는 커널의 목록이 보일 것이다. C:\Users\사용자명\AppData\Roaming\jupyter\kernels 위의 경로에 들어가서 사용이 안되는 커널들을 삭제해주면 더 이상 주피터 랩이나 노트북에서 커널목록이 나오지 않는 것을 볼 수 있다. 2022. 4. 8.
pandas ) 중복 데이터 처리 duplicated(), drop_duplicates() duplicated() 중복 데이터 확인 요소를 검사하여 중복된 요소면 True 아니면 False를 반환한다. import pandas as pd df = pd.DataFrame({'c1': ['a','a','b','a','b'], 'c2': [1,1,1,2,2], 'c3': [1,1,2,2,2] }) print(df); print() # 중복 데이터 확인 : .duplicated() 중복된 데이터이면 True print(df.duplicated()) # 행단위의 중복 확인 print() print(df['c2'].duplicated()) # 열단위(Series)의 중복 확인 print() 실행결과 c1 c2 c3 0 a 1 1 1 a 1 1 2 b 1 2 3 a 2 2 4 b 2 2 0 False 1 .. 2022. 4. 4.
pandas ) 누락 데이터 처리 isnull(), dropna(), fillna(), replace() isnull() 누락데이터이면 True를 아니면 False를 반환한다. 반대로 notnull()은 누락데이터이면 False를 아니면 True를 반환한다. 직관적으로 누락데이터만을 확인할 수 있다. import pandas as pd import seaborn as sns titanic = sns.load_dataset('titanic') # 각 열(axis=0)의 누락데이터 합 보기 print(titanic.isnull().sum()) # tip : 행으로 계산하려면 sum(axis=1) 실행결과 survived 0 pclass 0 sex 0 age 177 sibsp 0 parch 0 fare 0 embarked 2 class 0 who 0 adult_male 0 deck 688 embark_town 2.. 2022. 4. 4.
728x90
반응형