Computer Vision – 현대의 CV

합성곱 신경망을 통한 시각 인식의 구조적 변천과 기술적 분석 컴퓨터 비전 분야는 지난 10년 동안 수동으로 설계된 특징 추출 방식에서 데이터 기반의 엔드투엔드(End-to-End) 학습 시스템으로의 근본적인 패러다임 전환을 경험했다. 이러한 변화의 중심에는 스탠퍼드 대학교의 CS231n 강의가 있으며, 2025년으로 10주년을 맞이한 이 교육 과정은 딥러닝의 기초부터 시각적 세계의 심층적인 이해에 이르기까지 광범위한 지식을 다룬다. 특히 저스틴 … 더 읽기

PyTorch파이토치 기초

용어정리 PyTorch – GPU 가속 가능한 강력한 텐서 연산과, 동적 계산 그래프나 자동미분을 지원하는 딥러닝 프레임워크. Tensor(텐서) – n차원 배열을 수학적으로 나타낸 기본 단위. 머신러닝에서는 PyTorch가 지원하는 기능 즉 GPU 가속연산을 지원하고 자동미분 정보를 포함하는 핵심 객체. 단일 가설(Hypothesis, h) – 데이터의 입력(x)과 출력(y) 사이의 함수를 의미한다. (X*W+b 같은 함수) 가설 집합(Hypothesis Set) – 모델이 … 더 읽기

uv (of Python env)

프로젝트에 가상환경 만들기 가상환경 비활성화 아무 메시지가없으면 비활성화가 잘된것이고 이미 비활성화 되있으면 아래명령어를 찾을수 없다고 나온다. 가상환경 활성화 여부 확인 기본적으로는 터미널에서 가상환경이 표시가되지만, 터미널에 테마적용등으로 가상환경이 표시가 안되는경우도 있습니다. 1회성 가상환경 세팅 아래처럼 설치하면 가상환경 초기화 없이 1회성으로 설치됨 uv로부터 프로젝트 관리받기 conda에 있는 가상환경 uv로 바꾸기 먼저 아래처럼 requirements.txt 파일을 만듬

딥러닝(2) – 심화 학습

과대적합과 과소적합 딥러닝 기초에서는 각종 용어들과 파이토치 기본 사용법을 알아보았습니다 심화 학습에서는 과대적합 과소적합때문에 발생하는 성능저하를 어떻게 개선할것인지 알아보도록 하겠습니다. 또 새로운용어들도 존재하지만 대부분 기초학습때 배웠던것이니 걱정하지 않으셔도 됩니다. 편향-분산 트레이드 오프 실제로는 아래 그래프와 완전히 동일하진 않겠지만 편향과 분산은 서로 트레이드 오프관계이므로 적절한 조절을통해 Total error를 줄이는것이 중요합니다. 과대적합과 과소적합 문제 해결 Standardization 표준화 … 더 읽기

AI로 단편 영화 만들기 (1) – 스토리, 콘티, 캐릭터

1. 스토리 작성. 1-1. 베이스 스토리 작성 AI에게 대충 장르나 어떤느낌의 영화인지만 말하고 스토리 짜달라고하면 맘에드는게 없고 너무 흔한 그런 스토리가 나와서 직접 어느정도 스토리를 작성한 다음 이후 스토리를 완성시켜달라고 해보았다. 1-2. 나머지 스토리 AI 사용해 작성 한번에 맘에드는 스토리가 나와서 사용하기로 결정. AI의 답변: 작성해주신 전반부 스토리가 첫사랑의 풋풋함과 엇갈림을 아주 잘 보여주고 있습니다. … 더 읽기

딥러닝(1) – 기초 개념

약 인공지능 / 강 인공지능 AI의 종류 딥러닝의 계층 모델 학습방법 지도학습(Supervised Learning) – 문제과 답(Label)을 알려주고, 유사성을 알아서 파악하라고(훈련) 한뒤 또 다른 문제를 주고 답을 예측하게하는것 비지도학습(Unsupervised Learning) – 문제만 주고 답을 알아서 찾으라는 형태. 준지도학습(Semi-Supervised Learning) – 학습데이터에 답이 있는것도 있고 없는것도 상당히 많이 존재할때 사용 강화학습(Reinforcement Learning) – 문제를 주고 먼저 풀게한뒤 … 더 읽기

Rust(16) – Packages, Crates, and Modules

Rust가 처음이 아닌사람들은 제목의 Packages Crates and Modules 가 각각 것인지 대충은 알것입니다. 프로그램을 만들때 재사용되는 코드들을 정리해서 만들어서 재사용 및 다른사람과 공유함으로써 전체적인 생산성 향상 및 커뮤니티 전체 발전을 위한 개념이라고 보면됩니다. 거창하게 말했지만, 그냥 재사용되는 코드, 가져다 쓸수있는 코드 정도로 이해하면 됩니다. Crates < Packages Crate가 이 코드들의 최소단위 입니다. Rust에서 컴파일할때 컴파일러가 … 더 읽기

Rust(15) – if let & let else

if let match는 enum형 전체를 커버해준다면, if let은 반대로 특정 조건일때만 실행이 되도록 하는 코드입니다. 아래 예제는 config_max 변수가 None이 아니라 Some의 변형이고 그안에 값이 있다면, 그값을 max에 대입해서 블럭안의 코드를 실행시켜라 라는뜻입니다. 즉 u8타입의 정수 3이 됩니다. if let 키워드도 일반 if문처럼 마지막에 else { } 구문을 추가하여 config_max의 다른값을 처리할수있습니다. (optional)

Rust(14) – match

다른언어의 switch 문을 대체하는 Rust 문법. 지난시간에 enum에 대해서 배웠는데, match를사용해 어떻게 분류하는지 알아봅니다. Rust는 이렇게 match를 사용할때 enum Coin의 모든 값을 다 cover 해야합니다. 하나라도 빼놓으면 에러가 나는데 컴파일러가 잡아주고, 어떤 값을 빼먹었는지도 친절하게 알려줍니다. Catch-All 패턴과 _ Placeholder enum – match 사용 시, 모든 케이스에대해 일일히 처리하고싶지 않은경우도 있습니다. 이럴때는 캐치올 패턴이나 _를 … 더 읽기

Rust(13) Enum / Enumeration 열거형

Rust의 enum은 매우 특별합니다. C++과 파이썬처럼 단순히 열거하고 0,1,2,3 순서대로 구분만하는것을 뛰어넘어 실제로 다양한 데이터를 저장할수있습니다. 다른언어와 차별점이 크기때문에 꼭 공부하고 넘어가야할 부분입니다. Enum 기본 기능 우선 기본기능이자 다른언어의 enum과 같은방식으로 사용할때 예시를 보겠습니다. 이렇게 선언해두면 이런식으로 변수에 저장할수있고 필요한경우 V4인지 V6인지 구분이 가능하며 실제 ip주소 구조체를 만들경우 아래처럼 사용될수있습니다. 매개변수에서 int나 String 대신 IpAddrKind … 더 읽기