본문 바로가기

전체 글158

2025년 1월 최신 프로그래밍 언어 순위 1. 2025년 1월 TIOBE IndexTIOBE Index는 가장 많이 이용되는 프로그래밍 언어 순위표 중 하나이다. TIOBE Index에서는 아래의 3가지 지표를 기반으로 프로그래밍 언어의 순위를 설정한다.해당 프로그래밍 언어를 이용하는 엔지니어의 수: 과거에 프로그래밍 언어를 배웠던 엔지니어들도 포함되기 때문에 이 수치는 프로그래밍 언어의 과거부터 현재까지의 인기를 간접적으로 포함한다.해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수: 일반적으로 프로그래밍 관련 강좌에서는 프로그래밍과 관련된 개념을 설명하기 위해 C와 Java처럼 전통적인 언어를 자주 다루기 때문에  TIOBE Index에서는 전통적인 프로그래밍 언어의 순위가 높게 설정되는 경향이 있다.Google, Bing, Wikipedia.. 2025. 2. 8.
파이썬으로 DeepSeek 모델 구축 및 실행하기 1. DeepSeek 소개DeepSeek는 중국에서 개발된 거대언어 모델 (large language model, LLM)이다. ChatGPT보다 월등히 적은 개발비용과 운용비용으로 ChatGPT의 성능에 근접한 LLM 서비스를 구축했다는 점에서 많은 관심을 받았다.기존의 LLM 서비스와 다르게 DeepSeek는 인공지능 모델과 구현 코드를 공개 저장소에 오픈소스로 공개하였다. 특히 모델에 대한 기술문서까지 공개했다는 점에서 향후 인공지능 개발과 연구에 많은 변화가 있을 것으로 예상된다. 2. 개발 환경 구축본 글에서는 파이썬 코드 레벨에서 DeepSeek 모델을 실행하는 개발 환경을 구축한다. 윈도우에서 Anaconda와 PyCharm을 이용하여 개발 환경을 구축했다. Anaconda를 통해 아래와 같.. 2025. 2. 3.
2024년 12월 최신 프로그래밍 언어 순위 1. 2024년 12월 TIOBE IndexTIOBE Index는 가장 많이 이용되는 프로그래밍 언어 순위표 중 하나이다. TIOBE Index에서는 아래의 3가지 지표를 기반으로 프로그래밍 언어의 순위를 설정한다.해당 프로그래밍 언어를 이용하는 엔지니어의 수: 과거에 프로그래밍 언어를 배웠던 엔지니어들도 포함되기 때문에 이 수치는 프로그래밍 언어의 과거부터 현재까지의 인기를 간접적으로 포함한다.해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수: 일반적으로 프로그래밍 관련 강좌에서는 프로그래밍과 관련된 개념을 설명하기 위해 C와 Java처럼 전통적인 언어를 자주 다루기 때문에  TIOBE Index에서는 전통적인 프로그래밍 언어의 순위가 높게 설정되는 경향이 있다.Google, Bing, Wikipedi.. 2024. 12. 6.
[선형대수학] - 행렬의 유사성 (Similarity)과 대각화 (Diagonalization) 유사 행렬 (Similar Matrix)두 정방행렬 (square matrix) $A, B \in \mathbb{R}^{n \times n}$에 대해 다음을 만족하면, $A$와 $B$는 유사 행렬 관계에 있다고 하며 $A \sim B$라 표기한다.$\exists P \in \mathbb{R}^{n \times n}$ s.t. $B = P^{-1}AP$유사 행렬의 정의에 따라 다음이 성립한다.$\forall A \in \mathbb{R}^{n \times n}, A \sim A$$A \sim B \Rightarrow B \sim A \; (\because B = P^{-1}AP \Rightarrow A = PBP^{-1} = Q^{-1}BQ)$$A \sim B$ and $B \sim C \Rightarro.. 2024. 10. 31.
[선형대수학] - 행렬의 열 공간, 행 공간, 계수 (Rank) 열 공간과 행 공간 (Column and Row Spaces)행렬 $A \in \mathbb{R}^{m \times n}$의 열 벡터를 $\{\textbf{c}_1, \textbf{c}_2, ..., \textbf{c}_n\}$라 할 때, $A$의 열 공간 $col \; A \subseteq \mathbb{R}^m$는 다음과 같이 정의된다.$col \; A = span\{\textbf{c}_1, \textbf{c}_2, ..., \textbf{c}_n\}$$A$의 행 벡터를 $\{\textbf{r}_1, \textbf{r}_2, ..., \textbf{r}_m\}$이라 할 때, $A$의 행 공간 $row \; A \subseteq \mathbb{R}^n$은 다음과 같이 정의된다.$row \; A = sp.. 2024. 10. 24.
[선형대수학] - 직교성 (Orthogonality) 코시-슈바르츠 부등식 (Cauchy-Schwarz Inequality)$\textbf{x}, \textbf{y} \in \mathbb{R}^n$에 대해 다음이 성립한다.$|\textbf{x} \cdot \textbf{y}| \leq ||\textbf{x}|| ||\textbf{y}||$증명:$\textbf{x}$와 $\textbf{y}$가 이루는 각도를 $\theta$라고 하면, $\textbf{x} \cdot \textbf{y} = ||\textbf{x}|| ||\textbf{y}|| \cos\theta$이다.$|\cos\theta| \leq 1$이므로 $|\textbf{x} \cdot \textbf{y}| \leq ||\textbf{x}|| ||\textbf{y}||$이다. 삼각 부등식 (Triang.. 2024. 10. 22.
[선형대수학] - 벡터 공간 (Vector Space)의 정의와 성질 $\mathbb{R}^n$의 부분 공간 (Subspace)벡터의 집합 $U$가 다음의 성질을 만족하면, $U$를 $\mathbb{R}^n$의 subspace라고 한다.$\textbf{0} \in U$모든 $\textbf{x}, \textbf{y} \in U$에 대해 $\textbf{x} + \textbf{y} \in U$ (합 연산에 대해 닫힘)모든 $a \in \mathbb{R}$, $\textbf{x} \in U$에 대해 $a\textbf{x} \in U$ (스칼라 곱 연산에 대해 닫힘) Null 공간 (Null Space)행렬 $A \in \mathbb{R}^{m \times n}$의 null 공간은 아래와 같이 정의된다.null $A = \{\textbf{x} \in \mathbb{R}^n \; .. 2024. 10. 22.
2024년 9월 최신 프로그래밍 언어 순위 1. 2024년 9월 TIOBE IndexTIOBE Index는 가장 많이 이용되는 프로그래밍 언어 순위표 중 하나이다. TIOBE Index에서는 아래의 3가지 지표를 기반으로 프로그래밍 언어의 순위를 설정한다.해당 프로그래밍 언어를 이용하는 엔지니어의 수: 과거에 프로그래밍 언어를 배웠던 엔지니어들도 포함되기 때문에 이 수치는 프로그래밍 언어의 과거부터 현재까지의 인기를 간접적으로 포함한다.해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수: 일반적으로 프로그래밍 관련 강좌에서는 프로그래밍과 관련된 개념을 설명하기 위해 C와 Java처럼 전통적인 언어를 자주 다루기 때문에  TIOBE Index에서는 전통적인 프로그래밍 언어의 순위가 높게 설정되는 경향이 있다.Google, Bing, Wikipedia.. 2024. 9. 23.
2024년 3월 최신 프로그래밍 언어 순위 1. 2024년 3월 TIOBE Index TIOBE Index는 가장 많이 이용되는 프로그래밍 언어 순위표 중 하나이다. TIOBE Index에서는 아래의 3가지 지표를 기반으로 프로그래밍 언어의 순위를 설정한다. 해당 프로그래밍 언어를 이용하는 엔지니어의 수: 과거에 프로그래밍 언어를 배웠던 엔지니어들도 포함되기 때문에 이 수치는 프로그래밍 언어의 과거부터 현재까지의 인기를 간접적으로 포함한다. 해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수: 일반적으로 프로그래밍 관련 강좌에서는 프로그래밍과 관련된 개념을 설명하기 위해 C와 Java처럼 전통적인 언어를 자주 다루기 때문에 TIOBE Index에서는 전통적인 프로그래밍 언어의 순위가 높게 설정되는 경향이 있다. Google, Bing, Wikipe.. 2024. 3. 20.
2024년 2월 최신 프로그래밍 언어 순위 1. 2024년 2월 TIOBE Index TIOBE Index는 아래의 3가지 지표를 기반으로 프로그래밍 언어의 순위를 설정한다. 해당 프로그래밍 언어를 이용하는 엔지니어의 수: 과거에 프로그래밍 언어를 배웠던 엔지니어들도 포함되기 때문에 이 수치는 프로그래밍 언어의 과거부터 현재까지의 인기를 간접적으로 포함한다. 해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수: 일반적으로 프로그래밍 관련 강좌에서는 프로그래밍과 관련된 개념을 설명하기 위해 C와 Java처럼 전통적인 언어를 자주 다루기 때문에 TIOBE Index에서는 전통적인 프로그래밍 언어의 순위가 높게 설정되는 경향이 있다. Google, Bing, Wikipedia 등에서 프로그래밍 언어가 검색된 횟수: 인터넷 검색량을 기반으로 계산되기 때문.. 2024. 2. 29.
[머신러닝/확률모델] Pseudo Random Numbers (유사 난수)의 개념과 생성 1. 실제 난수와 유사 난수 소프트웨어, 머신러닝 모델, 확률과정 등을 개발할 때, 많은 부분에서 우리는 random()이라는 함수를 이용하여 난수를 생성한다. 그러나 엄밀히 정의하면 우리가 사용하는 많은 난수 생성 함수는 실제 난수 (true random number, TRN)가 아니라, 유사 난수 (pseudo random number, PRN)이다. 먼저 실제 난수는 단어 그대로 실제 무작위 추출 과정에 의해 생성된 난수로써, 아래의 3가지 속성을 갖는다. 예측불가능성 (Unpredictable): 생성되는 난수의 값은 예측될 수 없어야한다. 무편향성 (Unbiased): 생성되는 난수들에 특정 경향성이 나타나서는 안 된다. 무관성 (Uncorrelated): 생성되는 난수들 사이에 관련성이 없어여.. 2024. 2. 4.
편향-분산 트레이드오프 (Bias-Variance Tradeoff)와 L2 규제 (L2 Regularization) 1. 예측 모델의 편향 (Bias)과 분산 (Variance) 어떠한 학습 문제에서 아래와 같은 두 학생 A와 B를 생각해볼 수 있다. 학생 A: 고집이 너무 강해서 아무리 새로운 지식을 학습을 시켜도 자신의 주관대로 판단하는 성격 학생 B: 귀가 너무 얇아서 옳은 것이든 틀린 것이든 학습시키는 그대로 수용하는 성격 위의 예시를 머신러닝 문제에서 생각해보면 A는 편향이 크고 분산은 작은 예측 모델이며, 대표적으로 선형회귀 (linear regression)와 같은 모델이 있다. 반면에 B는 편향은 작지만 분산이 큰 예측 모델이며, 대표적으로 고차 다항 회귀 (high-degree polynomial regression)나 심층 인공신경망 (deep neural network) 등이 있다. 선형회귀와 같이.. 2024. 1. 15.