본문 바로가기

분류 전체보기

(39)
Simple Imitation Learning 딥러닝 기법 중 Imitation Learning 에 대해서 알아보자. Imitation Learning은 사람이나 전문가의 행동을 보고 그대로 따라하는 딥러닝 학습 방법이다. 지피티의 설명을 들어보면... Imitation Learning 이란?전문가의 시연 데이터(demonstration)를 바탕으로 에이전트의 정책(policy)을 학습하는 방법강화학습(RL)과 달리 환경으로부터 reward 신호를 직접 받지 않고, 전문가가 했던 행동 데이터를 통해 행동 정책을 학습해요.보통 전문가 데이터가 많거나 reward 설계가 어려운 문제에서 많이 활용된다고 한다. Imitation Learning의 대표적인 방법1️⃣ Behavior Cloning (BC)가장 기본적인 방법.전문가의 state-actio..
ImGUI vs PySide6 파이썬에서 GUI 프로그램을 할 때, 어떤 라이브러리를 쓸 지 고민하게 된다. 보통 많이 쓰는 라이브러리로는 PyQT, tkinter, wxPython 정도가 나오기는 한다. 지피티에게 최근에 파이썬 GUI 로 유명한 것 5가지만 알려달라고 해보자. 파이썬 GUI 라이브러리 Top 51️⃣ PyQt / PySideQt 프레임워크의 파이썬 바인딩PyQt와 PySide는 거의 비슷하지만 라이선스 정책 차이 있음(PySide는 LGPL, PyQt는 GPL/상용)데스크탑 앱 개발에 가장 많이 씀Qt Designer로 시각적인 UI 설계 가능다양한 위젯, 네트워크, OpenGL, 데이터베이스 기능 포함🔍 대표 앱: Anki, Calibre2️⃣ Tkinter파이썬 표준 라이브러리(추가 설치 없이 바로 사용 ..
Simple Object Detection with DETR Detection Transformer (DETR) 을 이용해서 간단한 Object Detection을 수행해보자. 본 코드는 "10가지 프로젝트로 끝내는 트랜스포머 활용 가이드 with 파이토치", 루비페이퍼, 프렘 팀시나 지음, 임선집 옮김 채호창 감수에 있는 코드를 그대로 가져와서 실행만 해 본 결과이다. 먼저 하고자 하는 것은 아래 사진에서 사람, 차량 등을 검출해내는 것이다. 결과적으로 동작하는 코드는 아래와 같다. import torchimport torchvision.transforms as Tfrom PIL import Imageimport requestsfrom io import BytesIOimport matplotlib.pyplot as pltfrom transformers im..
실시간 시스템에 파이썬 사용 가능성 일단 실시간 시스템이란 크게 2가지로 나뉜다. 하드리얼타임시스템과 소프트리얼타임시스템. 먼저 하드리얼타임 시스템(Hard Real-Time Systems) 은 처리 지연이 절대 허용되지 않는 시스템을 말하는데, 대표적으로 항공기 제어, 차량 ABS, 산업 로봇 제어 같은 것들이다. 이런 시스템은 보통 C/C++ 같은 저수준 언어로 많이 만든다. 이렇게 하드 리얼타임 시스템인 경우에는 파이썬을 사용하는 예를 거의 찾기는 힘들다. 다만 Python으로도 적절한 방법으로 실시간성 요구를 어느 정도 맞추는 어플리케이션에 활용하는 사례가 있기는 하다. 특히 Soft Real-Time 혹은 하드웨어 인터페이스를 C로 구현하고 상위 로직을 Python으로 처리하는 형태이다. 아래는 Python을 이용한 실시간 센..
Simple CNN 예제 아무래도 가장 간단한 딥러닝 예제가 필요할 것 같다. 가장 간단한 딥러닝 예제로는 mnist 손글씨 데이터에 CNN 예제가 적당할 것이다. 파이토치를 활용하여 바로 예제를 보자. import torchimport torch.nn as nnimport torch.optim as optimfrom torchvision import datasets, transformsfrom torch.utils.data import DataLoader, random_split# 1. 데이터셋 준비 (정규화)transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])full_dataset = dataset..
Multi-task learning 딥러닝에서 개별적으로 정교하게 학습된 모델을 여러개 가지고 있고, 맨 앞에 gating model을 가지고 있어서 입력이 들어오면 그 입력에 따라 적절한 모델로 전달하면 어떨까? 잘 된다면 다양한 문제에 대해 모두 잘 풀 수 있지 않을까? 이 개념은 딥러닝의 continual learning이나 multi-task learning 분야에서 활용하는 구조이다. 위의 방식은 보통 gating-based mixture of experts (MoE) 또는 task routing networks라 불리는 방법이다. Gating-based Modular Learning System딥러닝 모델이 다양한 문제(Task)를 동시에 잘 풀기 위해 사용하는 대표적인 방법 중 하나는 모듈형(Modular) 구조를 갖춘 학습 ..
Continual Learning(연속학습) 일단 가장 기초적인 딥러닝 모델은 고정된 데이터셋에서 학습을 수행하고, 학습이 완료된 후에는 새로운 데이터나 작업에 대해 다시 처음부터 재학습해야 하는 경우가 많다. 하지만 실제 환경에서는 데이터가 시간에 따라 지속적으로 유입되거나, 새로운 class가 생성되거나 하는 경우가 있어, 모델이 기존 작업 외에도 새로운 작업을 학습해야 하는 경우가 많다. 이때 이전 지식을 유지하면서 새로운 지식을 습득하는 학습 방식을 continual learning 또는 lifelong learning이라고 한다. Continual Learning이 중요한 이유는...기존 딥러닝 모델은 새로운 작업을 학습할 때 catastrophic forgetting(기존 지식의 급격한 손실) 문제를 겪는다. Continual lear..
파이썬 GUI 라이브러리 5가지 파이썬은 웹, 데이터 분석, 인공지능 등 다양한 분야에서 활용되지만, 데스크탑 애플리케이션 제작에서도 충분한 성능과 편리함을 제공한다. 그러나 검색해보면 파이썬에서 GUI 개발 관련 내용이 적은데, 찾아보면 사용할 수 있는 라이브러리가 다양하다. 대략적으로 5가지 파이썬 GUI 라이브러리에 대해서 알아보자. 1. PyQt / PySide아마 파이썬 GUI로 검색하면 가장 많이 나오는 라이브러리 일 것이다. PyQt와 PySide는 C++로 제작된 크로스 플랫폼 프레임워크인 Qt의 파이썬 바인딩이다. 두 라이브러리는 기능과 구조가 거의 비슷하지만, 라이선스 차이로 용도에 따라 선택할 수 있다. PyQt는 GPL과 상용 라이선스를 제공하고, PySide는 LGPL 라이선스를 사용해 상업적인 프로젝트에 더 유..