일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Backbone.js
- Go
- 블레이드 템플릿
- Redis
- Switch
- linux
- webpack
- Node
- mariadb
- fastapi
- php
- CentOS
- React
- NCP
- Machine Learning
- python
- SQL
- 기초 수학
- javascript
- For
- deep learning
- rabbitmq
- Babel
- Redux
- docker
- nginx
- laravel
- AWS
- phpredis
- nodejs
- Today
- Total
목록AI (33)
개발일기
Determinant of a Matrix 행렬 판별식은 역행렬의 존재 여부를 판별해주는 식이다. 역행렬을 판별하기에 행렬 판별식은 정방 행렬로 이루어져 있다. 수식으로는 행렬 앞 뒤에 | 절대값 붙여 표시한다. $ A = \begin{bmatrix} a & b \\ c & d \\ \end{bmatrix}, |A|=ad - bc $ 로 표시하며 행렬 판별식으로 행렬의 계수를 구할 수 있으며 A행렬의 ad - bc 공식으로 구할 수 있다. import numpy as np A = np.array([[5, 1], [4, 3]]) print(np.linalg.det(A)) # det()메서드로 행렬식 계산 """ 11.000000000000002 """ 행렬 판별식을 역행렬의 존재 여부를 판별하기에 ad -..
고유벡터 어떤 벡터에 선형 변환이 일어났을 때, 벡터의 방향이 바뀌지 않고 변환 결과가 자기 자신의 상수배이며 0이 아닌 벡터를 고유벡터라 한다. 여기서 선형 변환이란 벡터의 크기 변화없이 돌리거나 뒤집거나 뒤트는 등 벡터를 변형시키는걸 의미한다. 왼쪽 그림을 오른쪽 방향으로 전단 변형하면 그래프는 위와 같이 변형된다. 높이는 유지하되 오른쪽 방면으로 찌그러진 모양의 그림이 나오게 된다. 흰색 벡터는 방향을 그대로 유지하지만 노란색과 초록색 벡터는 방향이 바뀐다. 위의 변형의 결과로 흰색 벡터는 고유 벡터가 된다. 만약 위 그림을 2배로 확대시키는 변형을 가하면 그림이 커진만큼 그래프의 선의 길이도 2배 증가한다. 기존 벡터의 크기가 5, 확대된 벡터의 크기가 10이라 가정했을 때, 확대된 벡터에서 기존..
대칭행렬 전치 행렬이 기존 행렬과 동일하면 대칭행렬이라 한다. 즉 행렬의 전치는 자기 자신이 된다. 수식으로는 $ X = X^T $ 로 표시한다. # Symmetric Matrix import numpy as np X = np.array([[0, 5, 6], [5, 1, 9], [6, 9, 3]]) print("X: \\n", X, "\\n") print("X Transpose: \\n", X.T) """ X: [[0 5 6] [5 1 9] [6 9 3]] X Transpose: [[0 5 6] [5 1 9] [6 9 3]] """ 단위 행렬 행렬 대각선의 주축 요소들은 1이고 이를 제외한 나머지 요소가 0인 행렬을 단위행렬이라 한다. 단위행렬은 수식에서 $I $로 표시하며 $ I_3 = \begin{p..
전치 0차원 스칼라가 전치하면 행벡터가 열벡터로, 열벡터가 행벡터로 바뀐다. 1차원 벡터가 전치하면 스칼라과 동일하게 행벡터가 열벡터로, 열벡터가 행벡터로 바뀐다. 2차원 행렬부터는 다르게 동작한다. $ A = \begin{pmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \\ \end{pmatrix} A^T = \begin{pmatrix} x_{11} & x_{21} & x_{31} \\ x_{12} & x_{22} & x_{32} \\ x_{13} & x_{23} & x_{33} \\ \end{pmatrix} $ 행렬의 시작점과 끝점을 중심으로 대각선을 그린 후, 대각선을 중심으로 축을 뒤집..
텐서 데이터 스칼라(Scalar): 0차원의 텐서를 스칼라라 부른다. 0차원이란 [1, 2, 3]과 같이 배열 안에 들어있지 않는 경우를 의미한다. 1차원은 [1, 2, 3], 2차원은 [[1, 2], [3, 4]]와 같이 이루어져 있다. 즉 스칼라는 0차원의 숫자 상수를 나타낸다. 1, 2, 3 과 같이 개별로 존재하는 상수를 의미한다. 벡터(Vector): 1차원 텐서를 벡터라 칭한다. 쉽게 생각하면 1차원 배열이다. 행렬(Matrix): 2차원 텐서를 행렬이라 한다. 쉽게 생각하면 2차원 배열이다. 3-Tensor: 3차원 텐서를 나타낸다. 3차원부터 차원이 n차로 늘어나면 n-Tensor로 칭한다. 텐서(Tensor): 3-Tensor에서 봤듯이 차원이 늘어날수록 4차원 텐서, 5차원 텐서... ..
미분은 두 점 사이의 순간적인 변화율을 의미한다. 여기서 순간적인의 의미는 x값과 y값의 변화량이 0에 가까워지는 어느 순간을 의미한다. 추상적인 개념인데 두 점 사이의 거리가 0에 가까워 한점처럼 보이는 순간을 뜻한다. 이러한 순간 변화율을 미분계수라 부르고 쉽게보면 두 점 사이의 기울기이다. 기울기는 y 증가량을 x증가량으로 나눈 것을 뜻한다. 증가량이 0에 가까워지는 경우를 식으로 표현하면 다음과 같다. y값의 증가량은 B점의 y좌표 값에서 A점의 y좌표 값을 뺀다. x값의 증가량은 B점의 x좌표 값에서 A점의 x좌표 값을 뺀다. 또한 증가량은 0에 가까워지는 순간이므로 limit를 추가한다. 즉, 미분값은 두 점 사이의 기울기인데 두 점 사이의 변화율이 0에 가까워지는 순간을 나타내는 기울기다.
손실 함수(Loss Function) 모델의 손실 함수는 출력 층에 따라 달라진다. 모델에 따라 올바른 손실 함수를 사용해야 정상적으로 훈련이 가능하다. Binary Classification(이진 분류): 두 가지를 분류하는 경우(이것이 망고인가 아닌가) Multi-Class Classification(다중 분류): 세 가지 이상을 분류하는 경우(이 과일이 무엇인가요? - 망고, 오렌지, 바나나, 사과, 멜론 등) 텐서 플로에서는 Binary Classification(이진 분류)를 위해 binary_crossentropy 손실 함수를 사용한다. Multi-Class Classification(다중 분류)의 경우는 categorical_crossentropy 또는 sparse_categorical_cr..
활성화(Activation) 함수 활성화 함수는 입력을 비선형 형태로 변환하여 출력해주는 함수이다. 선형 함수는 직선으로 간단하게 y=ax+b로 편할 수 있다. 층을 계속 쌓아도 y=ax+b로 다시 변환이 가능하기에 여러 은닉층을 쌓는 이점이 사라진다. 물론 선형 함수를 활성화 함수로 사용할 수 있지만 은닉층을 여러개 늘려갈 수 있는 비선형 함수와 다르게 층을 여러개 확장해도 결국엔 첫 번째 층으로 귀속되는 속성을 가진다. Sigmoid 출력 값의 범위가 0~1인 함수이다. 입력 값의 절대 값이 커질 수록 출력 값은 1 또는 0에 수렴하며 기울기는 0에 가까워진다. 정규화가 가능하며 기울기가 자연스레 수렴하는 장점을 가지며 0또는 1로 분류하는 모델에 적합하다. 하지만 일정 값을 넘어가면 기울기 변화 없..