천천히 꾸준히 조용히
Recent Posts
-
[Data Science] Data Mining
[Data Science] Data Mining
2026.06.18Association Rule MiningA를 구매한 사람은 B도 같이 구매하더라~ 같은 패턴을 찾는게 목표 itemset : 물건들의 집합 support : 아이템셋이 전체 거래 중 몇 비율에서 등장하는지 나이브하게 생각하면 모든 가능한 연관 규칙을 찾고 support값과 confidence값을 계산해도 된다.다만 이렇게 하면 규칙 수가 너무 많아져서 느림 -> Apriori 알고리즘 사용 최소 지지도인 minsup과 최소 신뢰도인 minconf를 지정하고 비교함 (각각 직접 설정하는 파라미터)support >= minsup , confidence >= minconf (흔한 패턴만 보겠다 + 믿을 만한 규칙만 보겠다) 어떤 itemset이 frequent 하다면 (support >= min.. -
[Data Science] BirdCLEF+ 2026 챌린지 결과 발표
[Data Science] BirdCLEF+ 2026 챌린지 결과 발표
2026.06.10이어서 BirdCLEF에 대해 발표하겠습니다. 일단 결과는 public에서 은메달권까지 갔다가 1시간만에 4-500등이 밀리는 경험을 했습니다.이후 이것저것 여러 시도를 해 보면서 결국 1200등 내에 들었지만 좀 아쉬웠습니다. 몇 가지 가설을 세웠습니다. BirdCLEF의 학습데이터는 크게 inat 출처의 비교적 깔끔한 새소리와, soundscape 출처의 잡음이 많이 섞인 소리로 구성됩니다. EDA를 통해 이 둘 간의 격차가 굉장히 크다는걸 확인했습니다.즉, 소리 크기 자체의 편향을 정규화하는 모델 구조가 필요함을 확인할 수 있었습니다. 다음으로는 학습데이터에서 여러 종 간의 동시 출현 관련 생물학적 신호를 확인하기 위해서 수행한 EDA입니다.슬라이드에는 자세히 적어뒀지만.. .. -
[StackUp] 종합설계 Sprint 2·3 Backlog 및 계획 발표
[StackUp] 종합설계 Sprint 2·3 Backlog 및 계획 발표
2026.06.01멀티모달 AI를 활용한 챗봇 개발을 주제로 IT 직군을 위한 모의 면접 경험을 제공하는 서비스를 개발하고 있습니다.오늘은 스프린트 2와 3에 대한 계획과 백로그에 대해 말씀드리려고 합니다. 저희 프로젝트는 스프린트 3까지로 구성됩니다.원래는 스프린트 2까지를 이번 학기에 수행하고, 다음 학기에 이어서 스프린트 3을 개발하려 했습니다.다만 계획을 수정해 이번 학기에 스프린트 3까지 진행할 예정입니다.이번 주차는 스프린트2 에 대한 계획과 백로그를 발표하는 시간이지만 프로젝트 계획 상 스프린트 2와 3에 대해 모두 말씀드리겠습니다. 스프린트 2와 스프린트 3은 이전 스프린트1에서 닦아둔 기반을 바탕으로 실제 면접 시뮬레이션을 구현하는 단계입니다.스프린트 2에서는 텍스트 기반 면접 세션 구현과 .. -
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 5
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 5
2026.05.23로컬 OOF는 믿을 수가 없으니 데이콘 LB 자체를 채점기로 쓴다.제출은 하루에 세 번만 가능하니 이 제출을 검증기로 사용. 세번밖에 못 쓰니 아무거나 던지면 안된다. 가설을 세우기 전에 고려할 점 1. 현재 Best와 얼마나 다른지?비슷한거 섞어봤자 성능이 좋아지지 않는다. 현재 Best가 못 보는 부분을 다른 관점에 봐 줘야 의미가 있다.후보의 Test 예측과 현재 Best의 예측이 얼마나 비슷한지를 상관계수로 기록한다. 2. 혼자서도 얼마나 잘 맞히는지? Best랑 다르기만 하고 혼자서는 잘 못 맞추는 후보는 그냥 다른 노이즈일 뿐이다. 그러니 실제로 라벨을 잘 맞추는지도 확인해야 함.OOF 점수가 Baseline보다 얼마나 나은지를 평가한다. OOF를 믿을 수 없는건 최종 판정에서 못 믿는다는거.. -
[Embedded] Device Driver
[Embedded] Device Driver
2026.05.14디바이스 드라이버는 하드웨어를 추상화하는 소프트웨어 계층.. OS 다룬 내용이랑 유사할 수 밖에 없음. Upper Half 계층과 HAL 두 계층으로 나뉜다. // GPIOHAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);// 통신 UARTHAL_UART_Transmit(&huart2, buf, len, 100);// 초음파 TIMERHAL_TIM_Base_Start_IT(&htim2);// 모터 PWMHAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); 사실 지금까지 자연스럽게 작성하던 HAL_* 함수가 모두 디바이스 드라이버임.GPIO 레지스터를 직접 조작하지 않고 함수 호출만 했고, 내부에서는 디바이스 드라이버가 작동하던 것. .. -
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 4
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 4
2026.05.14https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 지금까지 내용을 기반으로 여러 가지 시도를 거쳤다.ensemble 크기 키우기, pseudo label을 다른 방식으로 적용해보기, rank average 적용 등등..그런데 전혀 진전이 없었음. 일단 내 로컬 컴에서는 Out-Of-Fold 방식으로 채점한다.Train 데이터 450개를 5개의 Fold로 나누고, Valid로 번갈아 선택하는 방식임. 여기서는 분명 점수가 잘뽑힘 그런데 데이콘에다가 제출만 하면 점수가 떨어진다.데이콘 서버는 비공개 라벨로 채점하니.. -
[Embedded] Embedded Operating System
[Embedded] Embedded Operating System
2026.05.13OS가 없으면 프로그래머가 무한루프로 직접 순서를 정해야 하지만, OS가 있으면 스케줄러가 자동으로 태스크를 실행해 멀티태스킹을 구현할 수 있다. 무한루프 + 인터럽트 구조는 OS가 없는 상황에서 사용하는 코딩 컨벤션이다.OS 가 있으면 이렇게 짤 필요가 없다. 여러 함수를 동시에 돌리는 것처럼 보이는 구조를 다룬다. 윈도우나 리눅스에서는 Process와 Thread를 나눠서 부르지만, 임베디드 OS에서는 Task라고 부른다.어차피 모든 Task가 메모리 공간을 공유하니 Process와 Thread의 구분이 중요하지 않음. OS 공부할때랑 정말 비슷한.. 임베디드 OS도 일단 근본은 OS니까.. 커널은 OS로 애플리케이션에 서비스를 제공한다. API는 OS와 라이브러리에서 제공하는 인터페이스 함수.. -
[Embedded] Motor
[Embedded] Motor
2026.05.13모터는 PWM으로 속도를 조절하고 인코더로 회전 결과를 측정한다.PWM은 출력이고 인코더는 입력으로, 두 가지가 한 쌍을 이뤄야 정확한 제어가 가능함. PWM, Timer 등 지난번에 센서를 공부할 때 다뤘던 내용들이 모터에 그대로 등장한다.다만 모터의 회전을 측정하는 인코더와 보정 파라미터를 찾는 Calibration이 새로 도입됨. DC 모터는 자석에 흐르는 전류의 방향과 세기를 조절해 모터에 회전력을 발생시킨다.전류의 방향이 회전 방향을 결정하고, 전류의 세기가 회전 속도를 결정한다. 일단 전류를 어떻게 조절하는지가 핵심. 인코더는 모터의 회전 방향과 이동거리 계산을 위해 사용된다.모터에 전류를 줘서 돌리더라도, 얼마나 돌았는지 계산해야 한다. 그러니 이 측정을 인코더가 담당함. 가변 저항으.. -
[Embedded] Sensor
[Embedded] Sensor
2026.05.13센서는 아날로그 현상을 디지털 값으로 바꾸는 역할을 수행한다.센서가 어떤 물리량을 어떻게 측정하는지 이해하고, 출력 신호를 MCU의 어떤 자원으로 받아들일지 결정해야 함. 핸드폰만 해도 카메라, 지문인식, 화면 회전을 위한 가속도계, 습도 및 조도 센서, GPS 등 굉장히 많은 센서가 들어있음.여기서 각 센서마다 측정하는 물리량과 용도가 다 다르다. AXLM(가속도계)와 Gyro(자이로스코프)는 항상 pair로 사용된다.자이로스코프는 축을 중심으로 한 회전운동을 의미하고, 가속도계는 축 방향으로의 직선운동을 의미한다. 핸드폰을 들고 위로 올리면 직선이동이니 가속도계가 감지하고, 손목을 비틀면 회전이니 자이로스코프가 감지한다.두 가지가 함께 사용되어야 핸드폰을 잡은 자세를 파악할 수 있음.다만 두 가지를 .. -
[Embedded] Communication Programming
[Embedded] Communication Programming
2026.05.12STM32 에서 UART를 사용하려면 4가지 단계를 거쳐야 한다. 1. GPIO를 Alternate Function으로 Multiplexing2. USART 모듈을 활성화하고 송수신 모드 설정3. Baud Rate를 계산하고 BRR 레지스터에 작성 4. TXE 및 RXNE 플래그 기반으로 송수신 STM32F429xx 에는 USART 및 UART가 8개 들어있음.두 개 모두 섞여있다. STM32는 동기 모드도 지원함.APB1과 APB2는 속도가 다름. 각각 저속, 고속을 담당하고 USART1과 USART6은 빠른 버스에 붙어 baud rate가 높음. STM32의 핀 하나는 기본 GPIO 외 16가지 Alternate Function 중 하나로 사용될 수 있음.전에 다룬 USART CAN I2C 등.. -
[Embedded] Communication Protocol (1)
[Embedded] Communication Protocol (1)
2026.05.12웹은 HTTP 기반으로 통신한다.HTTP 만 쓰는건 아니긴 함. HTTP 위에 Websocket도 올려서 쓰고.. gRPC 쓰기도 하고.. Thrift 쓰기도 하고..다만 웹에서의 웬만한 통신 프로토콜은 모두 HTTP 기반임. 웹은 물리 계층이 추상화되어 모든 웹 통신은 결국 TCP/IP -> 이더넷/Wi-Fi 패킷으로 내려간다.그리고 물리적 전송은 OS및 NIC 드라이버가 알아서 처리해줌. 그러니 개발자는 HTTP 위에서 뭘 할지만 고민하면 됨. 임베디드는 물리 계층을 직접 다루니 웹에서의 통신과는 좀 다름. 같은 PCB 보드 위 칩 간 통신은 SPIPC와 보드 사이 케이블은 UART핀이 부족하니 절약해야 한다. 센서를 여러 개 묶는건 I2C자동차 전체는 차동 신호가 필요하니 CAN등등... 임베디드 .. -
[StackUp] 종합설계 Sprint 1 Backlog 및 계획 발표
[StackUp] 종합설계 Sprint 1 Backlog 및 계획 발표
2026.05.10저희 팀의 종합설계 주제는 "멀티모달 AI를 활용한 챗봇 개발"이고, 이 주제를 바탕으로 IT 직군을 위한 모의 면접 경험을 제공하는 서비스를 개발하고 있습니다. 이번 주차에는 Sprint 1에 대한 프로젝트 백로그와 Sprint 1에서 진행할 내용을 말씀드리려고 합니다.서비스 플로우로 사용자가 StackUp 서비스를 어떤 흐름으로 사용할 지를 도식화했고, 소프트웨어 아키텍처로 어떻게 구현할지에 대한 청사진을 완성했습니다. Sprint 1에서의 개발 범위는 크게 세 가지로 정했습니다. 첫 번째로 개발환경 세팅 및 인프라 구축입니다. 기능 개발에 앞서 모든 팀원이 같은 환경 위에서 작업할 수 있는 토대를 다집니다.두 번째는 로그인입니다. IT 직군을 위한 서비스니 Github를 사용한 로그인을 .. -
[Embedded] ARM Assembly
[Embedded] ARM Assembly
2026.05.10ARMv4 시절 32비트 ARM은 명령어 하나하나가 4바이트라 임베디드 환경에서 너무 무거웠다.그래서 Thumb이 나왔지만 표현력이 부족해 자주 32비트 ARM 모드로 돌아가야 했고, 그 때 마다 ISA를 갈아끼우는 비용이 발생함. Thumb-2에서는 단일 ISA에서 16비트와 32비트를 혼합해서 해결한다. (Instruction Set Architecture)모드 전환이 사라지고, 컴파일러가 알아서 적절한 크기를 고름.그리고 Cortex-M4에서는 Thumb-2를 사용하기에 ARM ISA같은 모든 명령어 조건부 실행이 불가능. IT 블록으로 흉내낸다. 프로세서의 레지스터는 모두 32비트이다. (R0 ~ R15)즉, 8비트나 16비트를 다룰 때도 32비트 레지스터에 담기게 된다. 그러니 남는 공간이 생.. -
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 3
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 3
2026.05.09https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 이번에는 XGBoost를 적용해보자. LightGBM / CatBoost / XGBoost 모두 트리를 다루는 전략이 다름.지금까지는 LightGBM과 CatBoost모델을 피쳐만 바꾸는 방식으로 사용했는데, 이번에는 XGBoost를 사용함. 5-Fold 알고리즘은 똑같이 쓴다.알고리즘의 다양성을 키우면 노이즈를 더 줄일 수 있지 않을까.. 일단 성능은 XGBoost가 가장 좋긴 함. 그리고 제출했을 때 점수가 0.60807 으로 지금까지 결과물 중.. -
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 2
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 2
2026.05.05https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 야간 걸음수만 보고 7개의 라벨을 맞추는건 힘들다. 그러니 단서를 풍부하게 줘야 함. 모델이 여러 피쳐와 피실험자 정보를 동시에 확인하도록 하기 위해 여러 피쳐를 한 테이블로 모으고 LightGBM 으로 7-Task를 학습시키자. 잠은 22:00 ~ 10:00 사이에 잔다. 그러니 이 시간대가 중요함.잠자는걸 어떻게 알 수 있을까? -> 심박수, 소음, 밝기, 폰 안봄 신호를 사용하자. 이 두 가지를 기준으로 새로운 피쳐를 만들었다.z-score도 함께.. -
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 1
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 1
2026.05.04https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 먼저 데이터를 까보자. 10명이 3달동안 핸드폰이랑 스마트워치를 차고 다닌 LifeLog를 기록하고, 그 다음날 아침 잠이 어땠는지 맞추는 데이터임.10명이 대충 3달동안 참여해서 대충 700개 Row가 수집됐고, 이 중 일부를 학습에 쓰고 일부를 라벨 가리고 검증에 사용함. 데이터를 쭉 읽어보면.. 언제 폰이 켜졌고 그 때 어떤 활동을 했고 그 때의 밝기는 어땠는지를 저장한다. 12:03 폰 켜짐 / 걷는중 / 화면안봄 / 주변조도 534lux12:23 워치 심.. -
[Embedded] General Purpose Input Output
[Embedded] General Purpose Input Output
2026.04.30GPIO는 General Purpose Input Output의 약자로 범용적으로 사용할 수 있는 프로세서의 표준 인터페이스이다.핀들을 Input / Ouput / Alternate Function / Analog 등으로 설정해서 사용할 수 있음. GPIO 핀 하나를 제어하려면 클럭을 켜고, 레지스터로 모드를 설정하고, 데이터 레지스터로 읽기 쓰기 작업을 수행해야 함. STM32F429는 Cortex-M4 코어를 사용하는 SoC로, 버스가 두 종류로 나뉜다.AHB 버스는 고속으로 CPU와 메모리 사이를 중개하고, APB 버스는 저속으로 CPU와 주변장치를 중개함. 메모리는 CPU와 같은 속도로 돌아야 하지만 UART 같은 주변장치는 대충 돌아도 된다. (이미 외부 통신 속도가 정해짐)당연히 같은.. -
[Data Science] Data Preprocessing & Feature Engineering
[Data Science] Data Preprocessing & Feature Engineering
2026.04.14실제 현장의 데이터는 깔끔하지 않다.고객의 직업 정보가 비어있을 수가 있고, 연봉이 입력되는 칸에 -10처럼 음수가 들어가는 등 데이터에 노이즈가 포함될 수 있다. 그러니 데이터를 통해 제대로 된 결과를 얻으려면 Accuracy, Completeness, Consistency, Timeliless를 갖추도록 전처리가 필요하다. Structure : 데이터의 형식을 의미한다. CSV / SQL / JSON / XML 등.. Granularity : 데이터 Row 하나가 뭘 의미하는지를 정의한다. 한 번의 구매? 한 명의 사용자? Scope : 내가 분석하려는 목적에 맞는 범위인지 확인한다.Temporality : 데이터가 언제 수집됐고, 주기성이 있는지 확인한다. (TimeZone 처리 포함)Faithfu.. -
[Data Science] Statistical Data Analysis
[Data Science] Statistical Data Analysis
2026.04.09Descriptive Statistics는 데이터를 의미 있는 방식으로 요약하거나 특성화하는 작업을 의미한다.연속적이고 대칭적이며 이상치 없이 잘 정의된 데이터(대충 정규분포 따르는..) 를 설명할 때 사용함. Distribution은 관측값이 가능한 값의 범위에 어떻게 퍼져있는지, 특정 값이나 범위가 관측되는 빈도를 통해 데이터를 설명한다. Mean, Median, Mode, Range, Variance, Standard Deviation 등 기초 통계량은 패스 IQR은 데이터의 중간 50%가 차지하는 범위로, 3사분위수에서 1사분위수를 뺀 값을 의미한다. (Q3 - Q1) Skewness는 분포의 비대칭 정도를 의미하고, Kurtosis는 분포가 얼마나 뾰족한지를 의미한다. (정규분포.. -
[StackUp] 종합설계 프로젝트 브레인스토밍 발표
[StackUp] 종합설계 프로젝트 브레인스토밍 발표
2026.03.31저희 팀의 종합설계 주제는 "멀티모달 AI 를 활용한 챗봇 개발”이고, 이 주제를 바탕으로 IT 직군을 위한 모의 면접 경험을 제공하는 서비스를 개발하고 있습니다. 이번 발표 주제는 브레인스토밍 입니다. 저희 팀은 프로젝트에서 어떤 기능이 필수적으로 개발되어야 하는지와,그 기능을 어떻게 구현할지에 대해 브레인스토밍을 진행했습니다. 우선 저희 프로젝트의 큰 주제는 면접입니다. 면접 중에서도 IT 직군을 위한 면접이니, 어떤 기능이 필요할지에 대해서 회의를 진행했습니다.보이시는 화면은 회의 내용을 정리한 기록입니다. 굉장히 많은 아이디어가 나왔습니다. 기술면접, 인성면접을 분리해서 서비스를 제공하자는 의견이 있었고, 카메라를 연동해서 시선처리 및 표정 변화를 분석하자는 의견이 있었고..