728x90

전체 글 138

몬스테라 가지치기 후 수경재배

결혼 이후로 새로운 공간에 살게 되면서 인테리어 겸 집들이 선물로 식물들을 선물받았는데, 그 중 하나가 몬스테라였다.처음 왔을 때부터 매우 큰 화분이였는데 우리집에서 자리잡으며 엄청 자라기 시작하더니,안그래도 크고 무성한 몬스테라가 더 가득차서 감당하기 힘들 정도로 커졌다.그래서 어떻게 해야하나 알아보다 몬스테라를 가지치기 한 뒤에 물꽂이를 하면 다시 자란다는 걸 알게 되어서 시도해보았다. 몬스테라의 공중뿌리는 보통 새로운 가지가 생길 때 그 부근에 생긴다는 걸 알았고,검색해본 글들에서도 공중뿌리를 기준으로 살짝 아래를 자르라고 하여 가위로 잘라낸 뒤,수돗물을 담은 화병에 담아두었다. 공중뿌리가 생각보다 물러서 옮기던 중에 물병에 담다가 부러졌었는데,괜한 마음에 저것 때문에 죽는건 아닌가 싶어 걱정했다...

일상/식물 2024.08.21

[RL] 테트리스 강화학습 시도 내용

예전에 다양한 시도를 해보면서 겪었던 걸 적었던 글이였는데 오랜만에 발견해서 적어본다. 강화학습을 공부하면서 어디에 적용하면 재밌을까 생각해보다가 테트리스에 적용해보기로 했다. 처음에는 아는 게 DQN밖에 없어서 DQN으로 시도해봤는데, 학습이 전혀 되지 않았다. 나중에 검색해보니, 테트리스가 의외로 search space가 큰 환경이라 단순화해서 접근해보는 것부터 시도해보자고 생각해,블록을 네모로만 한정시켜 보상을 쉽게 줄 수 있도록 적용해봤는데 결과가 아래 그림처럼 좋지 않았다. 왜 그런지 생각해보다가 보상이 제대로 되지 못했거나, 모델이 맵을 읽지 못한다는 생각이 들어 각각 시도해 보았다. 아래와 같이 보상 체계를 한번 변경해봤다. 라인을 지우는 경우 보상 2배로 강화 보상 체계 변경 score →..

[RL] DQN(Deep Q-Network) 논문 리뷰

제목 + 링크: Playing Atari with Deep Reinforcement Learning ‌ 1. Introduction ‌ 기존 RL은 hand-craft 기반으로 진행해왔는데, 성능이 feature quality에 의존적 주변 분야(CV, NLP)에서 딥러닝을 이용해 많은 발전이 있어 RL에도 이점이 있을 것 같다고 생각 RL 환경에서 CNN을 기반으로 atari 게임 raw video input을 학습해 control이 가능한지 시도 ‌ 2. Background ‌ 강화학습에서 agent는 상태에 따라 행동을 정해야 하는데, 현재 상태는 이전 상태와 연관되어 있다. 이는 MDP(Markov Decision Process)를 떠오르게 하고, 따라서 논문에서는 MDP의 방법을 RL에서도 적용..

2023 회고, 그리고 24년 목표

한 해를 돌아보면서 어땠는지 생각해보았다. 23년은 상반기와 후반기를 기점으로 차이가 큰 한해였던 것 같다. 상반기 가족이 생겼다. 한 가정을 꾸리며 독립하였다. 고등학교 때 첫사랑이였던 아는 동생과 10년 뒤에서야 어쩌다 인연이 되어, 3년 가까이 연애를 하고 결혼했다. 서로가 긴 시간을 알았던 만큼 청첩장 문구도 특별하게 작성할 수 있었다. 10대, 친구가 되어 20대, 연애를 하고 30대, 결혼합니다. 주변에 결혼한 사람이 거의 없었는데 결혼이라는 과정 속에 해야 할 일들이 생각보다 많다는 걸 알게 되었다. 청첩장 돌리기, 신혼집 알아보기, 신혼여행 계획 세우기, 신혼집 입주하기, 가전 알아보기, 가구 알아보기, 가구 배치하기, 이삿짐 정리하기, 신혼여행 등등을 해결하니 상반기가 정신없이 지나가버렸..

일상/회고 2024.01.17

[RL] Beginner Guide

Background Knowledge 강화학습이란, 제한된 환경 안에서 설정된 에이전트가 현재의 상태를 인식하고, 선택 가능한 행동들 중 보상을 최대화하는 행동 또는 행동 순서를 선택하는 방법을 말한다. 여기서 강화(Reinforcement)란 심리학에서 생물이 어떤 자극에 의해 미래의 행동을 바꾸는 것을 말한다. Environment : 관측이 가능하고, 통제할 수 있는 닫힌 공간 Interpreter : 환경에서 Agent으로 가기 전, 확인하는 버퍼 단계로 보아도 무방하다 (프로그래머) Agent : 환경 내에서 제어되는 객체 State : 환경 내에서 관측되는 Agent의 상태, Observation이라고 표현되기도 한다 Action : Agent가 행동한 결과 Policy : Agent가 취할 ..

[Docker] 도커의 동작 원리와 이해

도커를 처음 알게 된 건 2019년쯔음에 AI 쪽에 입문하면서 환경설정으로 애먹던 와중에 도커를 처음 듣고 적용해보았었다. 그러면서 도커에서 GPU를 쓰기 위해 nvidia-docker 부터 시작해서 쿠버네티스까지 이것저것 공부했었기에 나름 많이 안다고 생각했다. 하지만 최근에 다시 보니 표면적인 활용방법만 알았을 뿐, 도커가 어떻게 작동하는지에 대해 깊이 알지 못하단 걸 깨달았고 공부해서 이해해본 내용에 대해서 적어보려고 한다. 가상화(Virtualization) 도커는 리눅스 컨테이너 기반으로 하는 가상화 플랫폼이다. 도커 얘기가 왜 나왔냐부터 시작하면 하이퍼바이저부터 시작하는 가상화에 대한 얘기가 빠질 수 없는 것 같다. 초기의 가상화 모델에 대한 수요는 IBM의 운영체제 아이디어 테스트로부터 시작..

DevOps/Docker 2024.01.09

오아 듀얼미스트 가습기 필터를 다이소 가습기 필터로 교체

TL;DR 간단 요약 오아꺼 전용 필터는 다이소 가습기 필터보다 길다. 다이소 가습기 필터 1개를 작게 짤라서 오아 전용 필터 길이로 맞추고 끼우면 작동한다. 겨울이 되면서 많이 건조해지다보니 가습기를 다시 찾게 되었다. 오랜만에 뒤져보니 집에 오아 듀얼미스트 가습기가 있었고, 필터를 새로 교체해서 써야겠다고 생각했다. 그리고 출근해서 다이소에서 10개짜리 필터를 구매해서 교체하고 켜봤더니 10초도 분무하지 않고 꺼졌다. 왜지?? 원인이 뭔지 파악해보려고 이것저것 시도를 해보고 조사해봤다. 일단 첫번째로 분출구가 오래되서 더럽거나 막혔을 수도 있을 것 같아 면봉으로 닦아봤는데 차이는 없었다. 두번째로는 물통을 빼고 전원부분을 뒤집어서 켜봤다. 그랬더니 정상적으로 나왔다. 기능적으로는 정상적으로 작동하니 ..

일상 2023.12.26

[OpenCV] 안드로이드에서 속도 개선해보기

최근에 안드로이드와 iOS에서 openCV를 사용할 일이 생겼다. 환경설정까지는 다른 분께서 해주셔서 큰 신경 쓰지 않고, 바뀐 언어 환경에서 같은 로직을 적용해본 결과 생각보다 느렸다. 오랜만에 급하게 하다가 깜빡한 게 생각나서 기록하는 겸, 왜 느려졌는지 그 이유와 개선방법에 대해서 적어보려고 한다. 먼저 로직을 간단하게 적어보자면 이렇다. - 이미지를 받아온다. - ROI 관심영역을 추출한다. - 추출한 영역 내에서 픽셀마다 값을 변경한다. - 변경된 이미지를 내보낸다. openCV를 써본 사람이면 아주 쉽게 접하는 일이다. 안드로이드에서 간단하게 예시를 보여주자면 이렇다. val src = Mat() //grayScale 이라고 가정 val dest = Mat() for(rowIdx: Int in..

Framework/OpenCV 2023.09.21

[3D LUT] 에 대해 이해한 내용 적어보기

최근에 이미지 보정 관련하여 일이 있어서 조사해보던 중에 LUT 에 대해 알게 되었고, 궁금했던 부분과 공부한 내용에 대해 짧게 적어보려고 한다. 내가 궁금했던 내용들은 이렇다. LUT가 뭐지?? 3차원의 RGB 픽셀을 어떻게 LUT를 적용시키는지, 적용 방법 3D Cube 파일 LUT 적용 방법 CUBE 파일의 LUT_SIZE는 왜 홀수인지?? LUT(Look Up Table)가 뭐지? LUT는 Look Up Table의 약자이다. LUT는 말 그대로 룩업 테이블, 찾아 보는 테이블이라는 뜻으로 엑셀에서의 LOOKUP 함수를 안다면 이해하기 쉬운데, 더 이해하기 쉽게 이미지를 가져왔다. 그림을 참고해서 왼쪽의 테이블(Table)이 제공된 상황에서는 A07이라는 부품을 알기 위해선 찾아보기만 하면(Loo..

Framework/OpenCV 2023.08.14

[Nestjs] JWT 비대칭 토큰 발급하기

상황 여러 어플리케이션에서 권한 별로 편리하게 운영하기 위해, MSA 구조로 인증 서버를 분리하여 어플리케이션 별로 운영할 수 있도록 만드는 작업이 필요했다. 기존에는 인증 서버에서 토큰 발급에 필요한 SECRET KEY와 어플리케이션에서의 토큰 인증하는 SECRET KEY가 같아 보안적으로 이슈가 있을 것으로 생각되었다. 따라서 인증 서버와 어플리케이션의 키를 분리할 필요가 있다고 생각했고, 자연스럽게 비대칭 키 도입을 해보게 됐다. 추가로 JWT 토큰과 관련된 내용은 이미 많은 블로그에서 포스팅되었지만, 비대칭 키를 이용해 인증하는 방법은 많이 보지 못해 내 나름대로의 이해를 붙여서 글을 쓰게 되었다. 내가 생각하는 인증 서버의 절차는 아래와 같다. 유저가 인증 서버를 통해 로그인한다. 인증 서버는 ..

Framework/Nestjs 2023.08.01
728x90