🌱 현대 인공지능 학습 1단계: 기초 수학 및 선형대수📅 학습 기간: 1~3개월🎯 학습 목표: AI 알고리즘을 위한 수학적 기초 확보📝 1. 기초 수학의 필요성인공지능과 머신러닝을 다루기 위해서는 수학적 개념이 필수입니다.특히 미분, 선형대수, 확률과 통계는 딥러닝 모델과 최적화 알고리즘을 이해하는 데 중요한 역할을 합니다.이번 글에서는 인공지능의 기초 수학 개념과 실습을 중심으로 학습합니다.📌 1-1. 미분과 적분🔑 1) 미분의 개념과 활용미분은 함수의 변화율을 구하는 연산입니다.딥러닝 모델의 손실 함수 최적화에서 경사하강법(Gradient Descent)을 통해 가중치를 업데이트할 때 사용됩니다.예시:손실 함수 L(w)L(w)를 미분하여 기울기를 구함으로써 최소값을 찾습니다.dLdw=lim..
🌱 현대 인공지능 학습 1단계: 기초 프로그래밍 (Python)📅 학습 기간: 1~3개월🎯 학습 목표: Python 기본 문법과 자료 구조 이해📝 1. Python 기본 개념 정리인공지능(AI)을 공부하기 위해 가장 먼저 익혀야 할 언어는 Python입니다.Python은 간결한 문법과 강력한 라이브러리 생태계로 인해 AI와 데이터 분석 분야에서 널리 사용됩니다.📌 1-1. Python 기본 문법🔑 1) 변수와 데이터 타입변수는 데이터를 저장하는 공간입니다. Python에서는 변수 타입을 명시하지 않고도 자유롭게 사용할 수 있습니다.예시 코드:# 변수 선언과 데이터 타입name = "Alice" # 문자열age = 25 # 정수height = 1.68 ..
📌 JAX 기초 - 왜 JAX를 배워야 할까?🚀 JAX란 무엇인가?JAX는 Google에서 개발한 고성능 수치 계산 라이브러리로, GPU와 TPU를 활용하여 대규모 데이터를 빠르게 처리할 수 있는 특징을 가지고 있습니다.Python의 Numpy와 유사한 문법을 가지고 있어 직관적이면서도 강력한 성능을 제공합니다.💡 JAX의 주요 특징자동 미분 (Automatic Differentiation)JAX는 grad() 함수를 통해 매우 간단하게 미분을 수행할 수 있습니다.딥러닝 모델 학습 시 필수적인 기울기 계산이 간편합니다.JIT 컴파일 (Just-In-Time Compilation)JIT을 사용하여 성능을 크게 향상시킬 수 있습니다.반복되는 연산을 GPU 또는 TPU에서 빠르게 처리할 수 있습니다.함수..
세그먼트 트리, 펜윅 트리, 스파스 테이블 비교: 상황별 자료구조 선택 전략데이터 구간 연산을 빠르게 처리하기 위해 가장 많이 사용되는 자료구조는 세그먼트 트리(Segment Tree),펜윅 트리(Fenwick Tree/BIT), 그리고 **스파스 테이블(Sparse Table)**입니다.이번 글에서는 이 세 가지 자료구조의 구조적 특징, 시간 복잡도, 사용 상황을 비교하여실전 문제에서 올바르게 선택할 수 있는 전략을 정리합니다.✅ 자료구조 개요 비교자료구조 연산 종류 초기화 시간 쿼리 시간 업데이트 시간세그먼트 트리합, 최댓값, 최솟값 등O(N)O(log N)O(log N)펜윅 트리합, XOR 등 누적합O(N)O(log N)O(log N)스파스 테이블최댓값, 최솟값, GCDO(N log N)O(1)❌ ..
Lazy Propagation + 모노이드 세그먼트 트리: 다양한 쿼리와 구간 업데이트를 동시에 처리하는 고급 기법지금까지 우리는세그먼트 트리를 통해 빠른 구간 쿼리를Lazy Propagation을 통해 효율적인 구간 업데이트를**모노이드(Monoid)**를 통해 다양한 연산으로의 확장을각각 배웠습니다.이번 글에서는 이 세 가지를 하나의 프레임워크로 통합하여**“다양한 연산을 지원하는 구간 갱신 + 쿼리용 세그먼트 트리”**를 구현하고 실전 문제에 바로 활용할 수 있도록 정리합니다.✅ 목표: 어떤 연산도 지원하는 세그먼트 트리 만들기기능 지원 여부구간 쿼리✅구간 갱신 (덧셈, 대입 등)✅연산 유형 (합, 최대, 최소, GCD 등)✅✅ 설계 전략: 모노이드 + 지연 전파 (Lazy Propagation)기..
모노이드(Monoid)란? 세그먼트 트리를 다양한 쿼리로 일반화하는 방법세그먼트 트리는 원래 구간 합 구하기를 위해 설계된 자료구조지만,구간 합뿐만 아니라 최댓값, 최솟값, 최대공약수(GCD), XOR, 곱 등 다양한 쿼리로 확장할 수 있습니다.이 확장의 핵심 이론이 바로 **모노이드(Monoid)**입니다.이번 글에서는 모노이드 개념, 세그먼트 트리 일반화,그리고 최대값, GCD, XOR 쿼리로 확장하는 실제 예제까지 쉽고 명확하게 정리합니다.✅ 모노이드(Monoid)란 무엇인가?어떤 집합 S와 **이항 연산 ∘**가 있을 때,아래 두 조건을 모두 만족하면 (S, ∘)는 모노이드입니다:결합 법칙(Associative Law)(a ∘ b) ∘ c = a ∘ (b ∘ c)예시: 덧셈, 최댓값, 최솟값, G..
2차원 펜윅 트리(2D Fenwick Tree) 완전 정리: 2D 누적합 쿼리 최적화 방법과 구현 예제1차원 배열 누적합을 빠르게 처리할 수 있는 **펜윅 트리(Fenwick Tree)**를,2차원 배열(행렬)로 확장한 것이 바로 **2차원 펜윅 트리(2D BIT)**입니다.이번 글에서는 2D 펜윅 트리의 개념, 구조, 쿼리 및 업데이트 구현법,그리고 실제 이미지 누적합 문제나 2D 구간 쿼리 문제 적용법까지 다룹니다.✅ 2D 펜윅 트리란?2차원 배열(Matrix)의 직사각형 구간 합을 빠르게 구하고 갱신할 수 있도록 설계된 자료구조입니다.1D BIT에서 누적합을 O(log N)으로 처리했던 것처럼,2D BIT는 O(log N × log M) 시간에 쿼리와 업데이트를 처리합니다.🔍 2D BIT 동작 개..
펜윅 트리(Fenwick Tree) aka BIT 완전 정리: 개념, 구현, 세그먼트 트리와 차이점 비교**펜윅 트리(Fenwick Tree)**는 **Binary Indexed Tree (BIT)**라고도 불리며,배열에서 구간 합을 빠르게 처리하기 위한 자료구조입니다.구간 합 구하기, 누적합 업데이트가 핵심이며,세그먼트 트리보다 간단하고 메모리 효율적이어서 실전에서 많이 쓰입니다.이번 글에서는 Fenwick Tree의 원리, 구현법, 주요 연산,그리고 세그먼트 트리와의 차이점과 문제 적용까지 상세히 알아봅니다.✅ 펜윅 트리란?정수 배열에서 누적합을 빠르게 구하거나 갱신할 수 있도록 설계된 자료구조**시간 복잡도 O(log N)**로 쿼리 및 업데이트가 가능🔍 구조 개념 (Binary Indexed T..
Lazy Propagation 완벽 이해: 세그먼트 트리에서 구간 업데이트를 효율적으로 처리하는 방법세그먼트 트리에서 구간 단위로 값을 업데이트해야 할 경우, 단순하게 처리하면 **시간복잡도가 O(N)**이 되어버려 효율이 급격히 떨어집니다.이를 해결하는 고급 기법이 바로 **Lazy Propagation(지연 전파)**입니다.이번 글에서는 Lazy Propagation의 개념, 필요성, 작동 방식, Python 코드 구현, 실전 문제 적용까지 단계별로 정리합니다.✅ Lazy Propagation이란?세그먼트 트리에서 여러 구간을 한 번에 갱신할 때, 갱신 정보를 지연시켜 저장해 두었다가**필요할 때만 적용(전파)**하는 최적화 기법입니다.📉 왜 필요한가?기존 세그먼트 트리로 아래와 같은 연산을 수행한..

세그먼트 트리(Segment Tree) 완벽 정리: 기본 개념부터 구간 합, 최솟값, Lazy Propagation까지**세그먼트 트리(Segment Tree)**는 배열의 구간 정보를 효율적으로 저장하고, 빠르게 질의/갱신할 수 있는 자료구조입니다.특히 구간 합, 최댓값, 최솟값, 특정 조건 카운트 등에서 **O(log N)**의 시간복잡도를 제공하여,코딩 테스트, 실전 알고리즘 문제에서 매우 중요한 역할을 합니다.이번 글에서는 세그먼트 트리의 구조, 구축(Build), 쿼리(Query), 업데이트(Update) 방법과**Lazy Propagation(지연 업데이트)**까지 단계별로 정리합니다.✅ 세그먼트 트리란?원래 배열을 트리 형태로 분할하여 저장하는 구조각 노드는 특정 구간을 대표하고, 구간 전체..
- Total
- Today
- Yesterday
- 웹개발
- REACT
- kotlin
- JAX
- DevOps
- seo 최적화 10개
- NestJS
- llm
- nextJS
- 쿼리최적화
- 딥러닝
- CI/CD
- rag
- SEO최적화
- 파이썬알고리즘
- Python
- 개발블로그
- PostgreSQL
- Docker
- time series
- 프론트엔드
- Next.js
- gatsbyjs
- 프론트엔드면접
- Prisma
- App Router
- fastapi
- 면접질문
- flax
- Ktor
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |