반응형

전체 글 17

[BoTorch] Bayesian Optimization을 딥러닝에 적용 (1) - BO 알고리즘

데이터를 최적화 하고자 할 때 많이 쓰이는 알고리즘 중 하나를 얘기하라고 한다면 BO(Bayesian Optimization)을 빼놓을 수 없습니다. 머신 러닝 알고리즘을 구현했지만 알고리즘에 적용되는 hyperparameter를 일일이 조정하기는 쉽지 않을 수 있습니다. 물론 운이 좋아 적절한 파라메타를 찾았다면 좋겠지만요. 하이퍼 파라메타를 사람이 직접 수정하지 않고 알고리즘에 맡겨 찾고자 하는 과정을 BO 알고리즘이 대신해준다고 볼 수 있습니다. BO 알고리즘 내부에는 하이퍼 파라메타를 찾기 위한 탐색 방법(grid search, random search, 등등)이 여러가지 있으며 최적의 관측값을 찾기 위한 함수인 acauisition function도 있습니다. BO알고리즘을 다음과 같은 수식으로..

[Python3] 파이썬 데코레이터, @ 의미, @ 사용법

파이썬을 사용하거나 github 같은 곳에서 코드를 보면 함수 위에 @표시가 되어 있는 것을 볼 수 있습니다. 항상 볼 때마다 어떤 기능을 하는 코드인지 유심히 살펴보지 않고 넘어가는 경우가 많았을 것입니다. 오늘은 이에 대해 간단하게 설명하고자 합니다. @사용함수 이러한 형식으로 사용하는 것 처럼 보여서 간단하게 보일 수 있지만 생각보다 간단하게 사용할 수 있는 기술은 아닙니다. 많은 연습을 통해서 사용법을 익혀야 효율적으로 사용할 수 있습니다. 클래스 내에서 직접적으로 접근할 수 있는 데코레이터형식의 정적메소드는 다음의 2가지가 있습니다. @classmethod @staticmethod staticmethod는 일반적인 인스턴스 메소드의 self를 활용한 변수를 사용하지 않는 독립적인 함수라고 생각하..

Python3 관련 2022.07.31

[ROS noetic] slam gmapping 토픽, 서비스, tf

ROS에서 SLAM 알고리즘의 하나인 gmapping의 다양한 ros 토픽, 서비스 등을 정리하여 알아보고자 합니다. 해당 내용은 http://wiki.ros.org/gmapping에서 발췌하여 작성한 글입니다. gmapping - ROS Wiki kinetic melodic noetic Show EOL distros: EOL distros: electric fuerte groovy hydro indigo jade lunar diamondback: Only showing information from the released package extracted on Unknown. No API documentation available. Please see this page for in wiki.ros.org..

ROS 2022.04.04

[python3] Unit test로 모듈 검증, 파이썬 assert

오늘은 파이썬의 기본 라이브러리인 unittest 라이브러리에 대해 알아보고자 합니다. Unit test란? 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는 지 검증하는 절차 모든 함수 혹은 메소드에 대해 테스트 케이스를 작성하는 절차 각각의 테스트 케이스는 분리가 되어 있어야 함 간단한 코드라면 unit test를 진행할 필요가 없겠지만 복잡한 코드의 경우에 다양한 기능이 있을 것입니다. 이럴 때 복잡한 코드 내부에 다양한 기능 혹은 함수들을 하나씩 검증하기 위해서 사용하는 기능입니다. unittest 라이브러리에서 제공하는 간단한 몇가지 기본적인 기능은 다음과 같습니다. 공식 문서는 아래의 링크에서 살펴보시기 바랍니다. 공식 문서의 기재된 내용을 바탕으로 설명한 글입니다. ..

Python3 관련 2022.03.27

[python3] dictionary를 함수의 인자로 넘기기

기본적으로 파이썬에서 함수의 인자를 넘기기 위해서는 다음과 같이 진행하게 됩니다. def add_func(x,y): result = x + y return result result_val = add_func(2, 3) print(result_val) x+y를 통해 덧셈을 하는 간단한 함수 예제입니다. 2+3 = 5 라는 결과값이 나오게 되겠죠. 하지만 코딩을 하다가 보면은 일일이 인자값을 넘겨주기 어려울 수 있습니다. 따라서 처리하는 중간 과정에서 생성된 배열에서 인자를 생성하는 과정을 거쳐야 하는 일이 생깁니다. 이를 처리하기 위한 방법을 알려드리도록 하겠습니다. 우선 함수의 인자가 x와 y 두 개의 인자로 이루어져 있습니다. 이를 지칭하는 dictionary 변수를 생성하도록 하죠. param_key..

Python3 관련 2022.02.27

[Python3] python3에서 .json 파일 다루기 - 하이퍼파라메타 저장

python3에서 json 파일을 다루는 간단한 방법을 알아보도록 하겠습니다. python에서는 이름 그대로 json이라는 라이브러리로 json 파일을 다룰 수 있도록 지원하고 있습니다. import json 만약에 설치가 되어있지 않다면 pip install json을 통해서 설치 후 진행하시기 바랍니다. json 파일의 형식은 대체로 아래와 같은 형식을 띄고 있습니다. { "my_name": "Hong_Gil_Dong", "my_age": 25, "my_hobby": "soccer", "my_language": "python3" } .json 파일을 python의 경우에는 dictionary 형식으로 불러와서 사용할 수 있는 편리함이 있습니다. 혹은 최근 딥러닝 분야나 데이터 처리 분야에서는 하이퍼 ..

Python3 관련 2022.02.21

ROS 좌표계 설명 오일러, 쿼터니언 (euler, quaternion)

ROS에서 사용되는 대표적인 좌표계로 오일러 좌표계와, 쿼터니언 좌표계가 있습니다. 이 두 가지 좌표계에 대해서 간단하게 설명하도록 하겠습니다. * 오일러 좌표계, 오일러 각 (Euler Angle) - 3차원 공간의 절대 좌표를 기준으로 물체의 회전을 측정하는 방식 https://ko.wikipedia.org/wiki/%EC%98%A4%EC%9D%BC%EB%9F%AC_%EA%B0%81 1. 장점 x, y, z 축으로 회전하여 직관적, 조작하기 용이함 180도가 넘는 각도도 회전이 가능함 2. 한계 오일러 각을 계산하는데 드는 비용이 큼 짐벌락 (gimbal lock): 먼저 회적한 축이 아직 회전하지 않은 축을 함께 회전시킴, 이로 인해 두 번째로 회전한 축의 결과로 인해서 세 번째 축과 첫 번째 축이..

ROS 2022.02.06

[Autoencoder] 오토인코더 간략 설명

최근 딥러닝의 부상으로 다양한 딥러닝 모델들의 관심이 뜨겁습니다. 그중에서도 생성모델인 autoencoder에 대해 간단하게 설명하고자 합니다. * Autoencoder란? Encoder와 Decoder로 구성된 딥러닝 모델을 의미합니다. 입력과 출력의 크기가 동일합니다. 가장 핵심은 데이터를 잘 압축하는 latent space vector를 얻고자 하는 것입니다. Manifold Learning Latent space vector를 통해서 데이터를 생성하는 것이 가능해집니다. Generative model 이미지 출처: https://thilospinner.com/towards-an-interpretable-latent-space/ https://www.jeremyjordan.me/variational..

딥러닝/VAE 2022.02.06

[Window 10 Tensorflow 설치] tensorflow 2.6, CUDA 11.2, cuDNN 8.2.1

이번에 컴퓨터를 새로 바꾸면서 tensorflow를 새로 설치해야 할 일이 생겨서 설치하는 과정을 리뷰해고보자 합니다. 본 게시물은 윈도우 10에 tensorflow를 설치하는 것을 기준으로 합니다. 금일 (2022.02.06) 기준으로 tensorflow는 2.8.0 버전까지 릴리즈 되어 있습니다. https://www.tensorflow.org/api_docs?hl=ko API Documentation | TensorFlow Core v2.8.0 An open source machine learning library for research and production. www.tensorflow.org 하지만 저는 안정적으로 이전 버전인 tensorflow 2.6.0 버전을 기준으로 설치하도록 하겠습니..

파이썬에서 Matplotlib를 사용해 gif 파일 만들기!

Matplotlib는 매트랩의 결과 그래프 이미지를 python에서 출력할 수 있게 하는 라이브러리 입니다. 보통의 경우에는 결과 자료로 이미지를 출력하기 위해 나타내는 용도로 사용합니다. 만약에 다음과 같은 코드를 가진 함수를 그래프로 표현한다면 다음과 같습니다. def target(x,y=0): return (-20*np.exp(-0.2*np.sqrt(0.5*(x**2 + y**2))) - np.exp(0.5*(np.cos(2*np.pi*x) + np.cos(2*np.pi*y))) + np.e + 20) matplotlib를 활용해 그래프 생성: x_axis_val_front = -5 x_axis_val_back = 5 x = np.linspace(x_axis_val_front, x_axis_val_..

Python3 관련 2022.02.01
반응형