본문 바로가기

[DAY4] AI math 5. 딥러닝 학습방법 이해하기 신경망 neural network =perceptron 선형모델은 단순한 데이터에서는 가능하지만 복잡한 문제에서는 성능이 부족하다. 복잡한 문제에 대응하기 위해서 신경망을 사용한다. 신경망은 비선형모델이다. 선형모델이 숨겨져 있고 선형모델과 비선형함수의 결합으로 이루어져 있다. 비선형모델은 밑에 설명할 활성함수이다. $X$ 데이터들로 이루어진 행렬 (n*d) 한 점으로 표현됨 $W$ 가중치 행렬(d*p) 데이터를 다른 데이터 공간으로 보내는 역할을 한다 $b$ y절편에 해당하는 행벡터 1 (1*p) 개를 n개의 행렬만큼 늘려놓은 행렬(n*p) 각 행들이 전부 같은 값을 같게 된다. $O$ 출력 (n*p) 원래 데이터는 d차원이었는데, 출력을 하게 되면서 p차원으로 바뀌게 된다 $$\textbf{O = X..
[DAY3] AI math 4. 경사하강법 -2 경사하강법으로 선형괴휘 계수 구하기 2022.01.19 - [부스트캠프 AI Tech 3기/이론 : U-stage] - [DAY3] AI math 2. 행렬이 뭐예요? [DAY3] AI math 2. 행렬이 뭐예요? 행렬 Matrix 여러 백터들을 원소로 가지는 2차원 배열 여러 점들 x=np.array([[1,2,3], [4,5,6]]) 2개의 행 벡터가 하나의 배열안에 담겨있다. numpy에서는 행이 기본 단위, 기준이 된다. 행 row 열 column $ x_{i.. chae52.tistory.com 의 맨 마지막을 보면 예측한 선형식의 값 $\hat{y}$과 원래 y값의 차이($\hat{y}-y$)를 최소화하는 것이 선형회귀의 방향이다. $$\hat{y}=X\beta$$ 이므로 선형회귀의 목적식은..
[DAY3] AI math 3. 경사하강법 -1 미분 Differentiation 변수의 움직임에 따른 함수값의 변화 측정법 기울기=변화율 변화율의 극한 = 미분 = 한 점에서의 접선의 기울기 import sympy as sym from sympy.abc import x fx=sym.poly(x**2 +2*x +3) # 다항식 sym.diff(fx,x) #x로 미분하라 >>>Poly(2𝑥+2,𝑥,𝑑𝑜𝑚𝑎𝑖𝑛=ℤ) 미분을 어디에 쓸까? 현재 주어진 점에서 어느 방향으로 움직여야 함수값이 증가 혹은 감소하는지 알 수 있다. 차원이 높아질 수록 어느 방향으로 가야 함수값이 커질지 작아질지 에측하기 어렵다. 어느 차원에서든 미분값이 양수든 음수든 상관없이 함수값을 증가시키고 싶으면 미분값을 더해준다 경사상승법 (gradient ascent) : 함수 최대화,..
[DAY3] AI math 2. 행렬이 뭐예요? (전치, 행렬곱, 역행렬, 유사역행렬) 행렬 Matrix 여러 백터들을 원소로 가지는 2차원 배열 여러 점들 x=np.array([[1,2,3], [4,5,6]]) 2개의 행 벡터가 하나의 배열안에 담겨있다. numpy에서는 행이 기본 단위, 기준이 된다. 그래서 행열이 [[1,2,3], [4,5,6], [7,8,9]] 처럼 표현하게 된다. 행 row 열 column n X m 행렬이라고 하면 n 개의 행과 m개의 열의 크기를 가진 행렬임을 알 수 있다. [[1,2,3] [4,5,6]] 이면 2 X 3 행렬이다. $ X $ = ($x_{ij}$)로 표기하기도 한다 원소 $ x_{ij} $ $ i $는 행의 index, $ j $는 열의 index = $ i $번째 행, $ j $번째 열에 있는 원소이다. 보통 행렬의 한 원소는 소문자로 표시하..
[Day3] AI math 1. 벡터가 뭐예요? (스칼라곱, 연산, 성분곱, norm, L1, L2, 거리, 각도, 내적) Vector :숫자를 원소로 가지는 리스트 :공간에서 한 점 : 1차원이든 5차원이든 한 점으로 나타난다. 원점에서부터 그 위치(점)까지 연결된 화살표로 표현한다. 열벡터 : 세로벡터 ex) [1,] [2,] [3] 행벡터 : 가로벡터 ex) [1, 2, 3] import numpy as np x=np.array([1,2,3]) 벡터의 차원 각 벡터안의 숫자들의 갯수 ex) [1,2,3] =>3차원 스칼라곱 각 구성성분에 스칼라값을 곱해주게 된다. 방향은 그대로이고 길이만 늘어나거나 줄어든다. x=np.array([1,2,3]) #a*x=[a*1,a*2,a*3] print(2*x) >>>[2 4 6] 스칼라를 a라고 생각하면 된다. 벡터의 덧셈과 뺄셈 각 구성성분끼리의 덧셈이나 뺄셈 같은 형태(모양)이어..
[Day2] Python 2-4. String and advanced function concept : String, Call by Object Reference, Function, Recursive Function, Fuction type hints, Docstring, 함수 작성 가이드라인, 좋은 코드 쓰는 법 String 문자형 데이터 시퀀스 자료형 한 글자에 1byte(=8bit =256까지 표현 가능) 차지 1. Indexing 문자열의 각 문자 하나하나가 list의 element처럼 생각하면 된다 각 문자는 개별 주소(offset)을 갖는다 s='asdf' print(s[-2]) >>>d 2. Slicing a='Last Checkpoint: 5시간 전(unsaved changes)' a[15:30] >>>': 5시간 전(unsaved' 주소값을 기반으로 문자열의 일부만 가져올 수 있다 3. 포함 여부 검사 s='asdf' 'f' in s >>>True 4. 문자열 함수 엄청 많은 문자열 함수가 있다 잘 활용하자,, isdigit() title() split() lower() count() 5. 문자열 ..
[Day2] Python 2-3. Conditionals and Loops : Condition, Loop, debugging Condition 조건에 따라 특정한 동작을 하게하는 명령어 if, else, elif를 사용 1. if-else문 문법 if 조건: 명령 else: 명령 조건이 참이면 if문 아래의 명령이 실행되고, 거짓이면 else문 아래의 명령이 실행된다. 2. 비교연산자 >,=,>>True a is b >>>True a=[1,2] b=a[:] a==b >>>True a is b >>>False a=300 b=300 a==b >>>True a is b >>>False python은 자주 사용하는 수 -5~256을 정적 메모리에 저장해두고 사용하는데 그 외의 수는 사용할 때마다 할당되어서 다른 메모리 주소를 가지게 된다. 3. 숫자, 문자가 조건으로 들어갈 때 if 1: print("True") >>>True if ..
[Day2] Python 2-2. Function and Console I/O : 함수, Console in / out 함수 어떤 일을 수행하는 코드 덩어리 장점 : 코드 재사용을 할 수 있고, 분리 시킬 수 있다 캡슐화 코드를 나누어 놓는 것 구조 def 함수이름 (파라미터1 ,파라미터2): 코드 return 반환값 파라미터 : 입력값에 대한 interface argument : 실제 parameter에 대입된 값 def f(x): return 2*x+7 def g(x): return x**2 x=2 result=f(x)+g(x)+f(g(x))+g(f(x)) print(result) 이 코드에서 argument는 x인 2가 된다. return값이나 parameter은 존재하지 않을 수 있다. 함수는 상단에 적는 것이 좋다. 함수와 함수사이는 2줄씩 띄워 적는다. Console in / out 1. input() 사용자가..