전체 글 189

3차원 텐서 전치에 대해서 알아보자. (tensorflow, numpy transpose)

2차원 행렬은 원소의 값들에 대해 행과 열의 위치를 바꾸는 것으로 전치를 할 수 있다. 2차원 행렬의 전치는 단순하지만 3차원 텐서부터는 전치되는 값이 헷갈리기 시작한다. 따라서, 해당 글에서는 3차원 텐서를 전치시킬 수 있는 경우들과 전치가 어떻게 되는지 쉽게 설명해보려하였다. 먼저, tensorflow로 샘플데이터를 만들어 주고, 3차원 텐서를 numpy로 형태로 만들어주었다.import numpy as np import tensorflow as tf tensor_3d = tf.random.uniform(minval=0, maxval=10, shape=(1,2,3,4), dtype=tf.int32) tensor_3d = tensor_3d.numpy().squeeze() print(f"shape : {..

Matplotlib 그래프 시각화 방법 - 두 그래프 평행하게 그리기 (tensorflow, numpy 수치데이터)

python의 대표적인 시각화도구인 matplotlib 라이브러리를 사용하여, log함수를 예시로 그래프를 그려보겠습니다. 먼저, 함수를 임포트 시켜줍니다. import matplotlib.pyplot as plt log함수를 그려주기 위해서는 log함수의 x, y좌표값들을 만들어주어야 합니다. x, y값들은 Numpy, Tensorflow 두가지 방법으로 데이터를 만들어 보겠습니다. Numpy로 log함수의 x, y 세트 만들기 import numpy as np x_np = np.linspace(0.1, 10, 1000) y_np = np.log(x_np) Tensorflow로 log함수의 x,y 세트 만들기 import tensorflow as tf x_tf = tf.linspace(0.1, 10, ..

수의 범위(range)를 괄호로 표현하기

( ) 소괄호는 초과, 미만을 표현하는 기호. [ ] 대괄호는 이상, 이하를 표현하는 기호. (0, 10) : 0초과 10미만 = 0 < x < 10 (0, 5] : 0초과 5이하 = 0 < x ≤ 5 [0, 20) : 0이상, 20미만 = 0 ≤ x < 20 기호가 헷갈릴 때가 있는데, 대괄호가 더 크다!는 의미니까 대괄호가 있는건 더 많은 수를 포괄할 수 있다(는 연상법으로) = 이상, 이하를 의미한다. 소괄호는 작기때문에 수의 범위도 더 작다(고 연상하여) = 초과, 미만의 범위다라고 생각하면 쉽게 외워질듯하다.

Mathematics 2023.09.18

최소제곱법, 최소자승법(Least Squares Method), 정사영 행렬(Projection Matrix), Normal Equation에 대한 개념 정리

현실의 문제는 해가 정확히 1개가 존재하는, 유일한 해가 있는 방정식으로 풀기 어려운 것이 대부분입니다. 따라서, 우리는 정확히 매칭되는 정답이 아닌, 근사해(approximated solution)를 구해야합니다. 근사해를 구하기 위해 우리는 최소자승법 (또는 최소제곱법)을 적용하여 회귀분석을 하고, 식을 얻을 수 있습니다. (최소자승법은 영어로 Least Squares Method, Least squares,Least squaresapproximation라고 할 수 있습니다.) 최소 제곱법에서 근사해를 구하는 것은 아래의 3가지와 같습니다. 해가 정확히 일치하지는 않지만, 실제값과의 차이가 별로 나지 않는 해를 구하는 것 실제값과 예측값의 오차가 최소화되는 것 실제값과 가장 가까운 예측값을 구하는 것..

정규화란? Normalization, Regularization 정규화 종류에 대해서 알아보자.

정규화라는 단어가 가지는 의미는 정상화라는 말과 같다. [어떠한 오류나 비정상적인, 패턴이 없는] 상태에서 [정상적인 상태, 일정한 규칙을 가진]상태로 상태를 변화시키는 것이 정규화이다. 정규화가 실제로 수행되는 경우에는 굉장히 다양한 종류들이 있다. 흔하게 볼 수 있는 정규화로는 데이터베이스에서의 정규화, 통계학적 정규화, 머신러닝/딥러닝 학습에서의 정규화 3가지가 있다. 영어로 보자면 Normalization, Regularization가 될 수 있는데, 모두 한국어로하면 정규화라고 한다. 그래서 어떤 누가와서 정규화가 뭐에요?라고 묻는다면, 어떤 정규화를...말하는거지? 하고 헷갈릴 수 있다. 어느 면접에서 실제로 어떤 정규화를 말하는건지 질문자의 의도를 파악하지 못하고, 쌩뚱맞은 정규화에 대해서 ..

AI/Fundamental 2023.09.13

Norm이란? L1 Norm, L2 Norm 설명

Norm (노름) : 벡터의 절대적인 크기. 또는 두 벡터 간의 거리. 기호로는 || X || 라고 표시한다. (X는 벡터) Norm의 차수 : Lp-norm, p-norm이라고 표현하고, 이때 p가 norm의 차수이다. * 위키백과 L1 norm p = 1 맨해튼 거리 각 요소(의 차이)에 대한 절대값을 취해 모두 더한 값 (절대적인 값) 절대값을 취하기 때문에, 이상치(outliers)에도 덜 민감하다. 예시 : 격자 모양의 도로망에서 최단 거리를 구하는 방식 딥러닝에서의 활용예시 : L1 loss = 실제값과 예측값의 차이에 대한 절대값의 합. L1 loss의 평균 = MAE (Mean Absolute Error) L2 norm p = 2 유클리디안 거리 각 요소(의 차이)에 대해 제곱을 취해 모두..

나만의 아이디어는 어떻게 만들까? (창의력 키우는 법, SCAMPER 기법)

이전에 없던 생각, 이전에 없던 방법론, 이전에 없던 어떤 것들을 만들어내기 위해서는 우리는 "창의력"이라는 것이 필요하다고 항상 강조한다. 아주 어린아이들에게만 창의력 교육이 필요한 것이 아니라, 다 큰 어른들도 본인이 일하고 있는 분야에 전문가로써 이전보다 더 나은 방식으로 발전시키기 위해, 본인의 창의력을 키우기 위해 꾸준히 노력해야 한다. 특히나, 취업준비생이라면 모든 기업에서 강조하는 것이 창의성이지 않은가!! 어떻게 하면 창의력을 키울 수 있고, 창의성을 발휘할 수 있는지 조사해보았다. 창의력을 어떻게 하면 키울 수 있을까? 우선 요즘 나의 궁금증에 대해 좋은 실마리를 제공해주는 ChatGPT에게 먼저 물어보았다. 창의력을 발휘하고, 키우는 방법을 직장인들의 관점에서 알려줘. ** ChatGP..

Thought 2023.09.07

Pytorch로 Tensor Operation 다루는 법! (기본 기능 모음)

지난 글에 이어서 numpy가 아닌 pytorch에서 tensor를 다룰 수 있는 함수들에 대해 정리해보았습니다. tensor에 대한 개념이 익숙하지 않으신 분들은 해당 글을 먼저 읽고 오시는 것을 추천드립니다! https://kyull-it.tistory.com/158 Tensor란 무엇인가? (+ Python Numpy Tensor 구현 및 기본 기능) Tensor란 무엇일까? 우리는 중고등학생때, 스칼라, 벡터, 행렬까지 배웠다. 0차원인 스칼라, 1차원인 벡터, 2차원인 행렬,,, 그럼 3차원부터는?! 그게 바로 텐서라고 하는 것이다. 3차원 이상은 모두 kyull-it.tistory.com tensor 생성하기 import torch torch.FloatTensor( ) # np.array( )..

2023.08 한 달 간의 영어단어 기록

commutative 교환이 되는 Commutative law 교환 법칙 Distributive law 분배법칙 Associative law 결합법칙 transpose 전치 typography 타이포그래피. 활판으로 하는 인쇄술. 보통 폰트디자인에도 이 용어를 사용함. abacus 주판 foothold 발판. 근거지 propogandize 선전하다. propoganda 어떤 의도를 통해 대중들에게 퍼트리는 것 exponential 점점 더 가파르게 증가하는. 지수의 (수학) exponent 어떤 수의 (멱)지수 / 승; 엑쓰포우넌트 moot 미해결의, 논쟁 중인 invocation 발동 recursive 회귀적인, 귀납적인 (반복적인) recurrence 회귀, 복귀, 재발, 반복 curse 저주 dis..

English/monthly 2023.08.31

Tensor란 무엇인가? (+ Python Numpy Tensor 구현 및 기본 기능)

Tensor란 무엇일까? 우리는 중고등학생때, 스칼라, 벡터, 행렬까지 배웠다. 0차원인 스칼라, 1차원인 벡터, 2차원인 행렬,,, 그럼 3차원부터는?! 그게 바로 텐서라고 하는 것이다. 3차원 이상은 모두 텐서의 형태로 표현해주고, 이러한 텐서 형태를 가져와서 스칼라, 벡터, 행렬도 텐서로써 표현해줄 수도 있다. 편의상 모든 값들을 텐서형태로 정의해주는 것으로 보면 되고, 아래의 표가 모든 텐서 종류들을 정리한 내용이다. 텐서의 종류 텐서의 종류 (영어) 형태의 명칭 형태의 명칭 (영어) 0차원 텐서 Zeroth-order Tensor 스칼라 Scalar 1차원 텐서 First-order Tensor 벡터 Vector 2차원 텐서 Second-order Tensor 행렬 Matrix 3차원 텐서 Th..