전체 글 165

[DSL] Neural Networks and Deep Learning Week 2 : Neural Networks Basics

드디어 머신러닝 기초 강의를 듣기 시작했다. 지금까지는 머신 러닝에 대한 지식이 필요하면 생존형으로 필요한 부분만 어찌어찌 공부했었는데 이 기회에 기초를 탄탄히 하고 싶다. 사실 이미 1주 차도 있었지만, 딱히 정리까지 필요해 보이지는 않아서 생략했다. 우선은 머신 러닝에 쓰이는 notation들부터 정리했다. 용어 정의가 헷갈리기 시작하면 답도 없기 때문에 다른 주차는 정리를 안 해도 이번 주차는 정리하고 넘어가는 게 좋다고 생각했다. 지금까지 그냥 대충 그렇겠거니 하면서 넘어온 애들이라서 확실히 해두는 게 나중에 안 헷갈린다. 그리고 이진 분류 문제를 해결하기 위해서 Logistic 회귀 문제에 대해 배웠다. Logistic 회귀는 이전에 계량경제학 수업을 들으면서도 잠깐 배웠기 때문에 어느 정도 익..

[구글 머신러닝 부트캠프] 킥오프 미팅

이번에 운이 좋게도 구글 머신러닝 부트캠프 3기에 선정되었다. 방학 때 뭐라도 하고 싶어서 마구마구 지원서를 넣었는데 그중에 하나만 됐다. 아직 결과가 안 나온 것도 있긴 하지만 영 신통치 않다. 그리고 오늘 킥오프 미팅이었는데 생각보다 엄청 로드가 많아 보였다. 사실 나는 가벼운 마음으로 지원했었다. 하지만 다른 분들은 그렇지 않은 것 같았다. 경쟁률도 10:1? 9:1? 정도였다는데 아쉽게 기회를 얻지 못한 사람들도 있는만큼 나도 마음을 단단히 먹고 열심히 해야겠다는 생각이 들었다. 아직 한 건 없지만 그래도 계획이라도 작성해둬야 앞으로 꾸준히 잘 나아갈 수 있을 것 같다. 일단 나는 컴공과 4학년임에도 머신러닝에 대해서 잘 알지 못한다. 얼마 전까지만 해도 시스템 쪽에 관심이 두고 있었어서 머신러닝..

[임시소] 랜덤 미로 생성

랜덤 미로 생성하는 알고리즘이 필요해서 조금 검색해보니 정말 다양한 알고리즘이 있었다. 굳이 복잡한 알고리즘은 필요하지 않았다. 보드에서 출력할 수 있는 공간이 부족하다 보니 벽도 좌표로 저장하는 알고리즘을 사용하게 되면 이동할 수 있는 칸이 너무 적어질 것 같았다. 그래서 알고리즘을 조금 수정할 필요가 있어서 비교적 간단한 Recursive랑 Binary Tree 둘 중에 고민했다. 원래는 둘 다 구현해보고 비교하려고 했었는데, 벽을 나타내는 방법이랑 조금 충돌이 나서 그냥 Binary Tree만 구현하기로 했다. 하려면 할 수는 있겠지만 알고리즘을 구현하는 게 핵심은 아니라고 생각했다. 그리고 랜덤 함수를 sleep 없이 사용했더니 이상한 결과가 나왔다. 시드 값이 바뀌지 않는 이상은 계속 같은 값이..

etc/프로젝트 2022.06.20

[임시소] 기말 프로젝트 시작

이번 학기에 임베디드 시스템 소프트웨어라는 과목을 수강하고 있다. 임베디드 환경에서 리눅스가 어떻게 동작하는지에 대한 내용을 배우고 있다. 중간고사 이전에는 주로 임베디드 환경이 어떤 식으로 구성되어 있는지, 리눅스 커널이 어떻게 동작하는지에 대해 배웠다(곁다리로 C 코드를 최적화하는 방법도 배움). 시스템 콜, 디바이스 드라이버 정도는 아직 기억에 잘 남아있는데 나머지는 거의 까먹기 직전이다. 기말에는 커널이 메모리를 할당하는 방법, 인터럽트에 관한 내용을 배우고 마지막엔 안드로이드로 넘어와서 JDK, NDK에 대해서 배웠다. 그리고 파이널 프로젝트로 JNI와 디바이스 드라이버를 사용하는 선에서 자유 주제로 응용을 하나 만들면 된다. 주말간 주제를 고민해봤는데, 결국은 안드로이드는 최소화하고 로우 레벨..

etc/프로젝트 2022.06.20

[MySQL/C++] Visual Studio 2019 MySQL 연동

얼마 전에 MySQL을 깔고 Visual Studio에 연동하려니 잘 되지 않았다. 몇시간을 끙끙대며 해결했는데 그 방법을 아카이빙 해놔야겠다. 1. 우선 MySQL, ODBC, Connector설치할 때 32-bit 혹은 64-bit으로 다 맞추자. 괜히 다른 블로그 따라한다고 섞어서 다운받았다가 처음부터 다시 설치했다. 보통의 경우엔 그냥 다 맞춰서 다운 받는게 안전한 것 같다. 2. Visual Studio의 프로젝트의 설정을 잘 해야한다. 포함 디렉터리는 MySQL Server 안에 있는 include의 주소, 라이브러리 디렉터리는 lib의 주소로 잘 설정하자. 그리고 난 구성과 플랫폼을 모든 구성, 모든 플랫폼으로 수정했다. 다른 블로그랑 똑같이해도 잘 안되길래 그냥 모든으로 설정했다. 이걸로도..

etc/memo 2022.05.30

[Linux/Ubuntu] Release file is not valid yet. Updates for this repository will not be applied. 해결

새로 사용할 서버에서 apt-get update를 했더니 이런 에러가 나왔다. 조금 찾아보니 시간이 맞지 않아 발생하는 문제인 것 같았다. 여러 가지 방법 중에 내가 해결한 방법을 적어두려고 한다. sudo apt install ntp sudo service ntp restart 찾아보니 ntp는 네트워크 시간 동기화를 위한 사용하는 녀석인 것 같았다. 덕분에 apt-get update할 때 다시 에러가 뜨지 않았다.

etc/memo 2022.05.22

[Python] Module Downgrade

학과 수업에서 statsmodels를 쓸 일이 있었는데 교수님이 사용하시는 버전보다 내 버전이 높아서 deprecated 된 내용이 있었다. 가끔 이런 경우가 생기는데 pip 사용법이 익숙하지 않아서 매번 찾아보게 되는 것 같다. 까먹기 전에 간단하게 정리해야겠다. 나는 Anaconda prompt를 사용했다. pip install --upgrade [package]==[version] 이렇게 작성하면 원하는 모듈을 다운그레이드 할 수 있다. 나는 statsmodels의 버전을 0.13.2에서 0.11.1로 바꾸고 싶어서 이렇게 작성했다. pip install --upgrade statsmodels==0.11.1

etc/memo 2022.05.20

[BOJ] 17837 새로운 게임 2 (C/C++)

17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 역시나 삼성 기출문제였다. 삼성 문제는 일단 문제를 꼼꼼히 읽는 게 중요한 것 같다. 문제를 완벽히 이해하고 필요한 기능을 하나하나 구현하면 풀 수 있다. 이번 문제를 풀기 위해서 가장 고민했던 부분은 게임의 진행 상태를 어떤 자료구조에 담을까였다. 제일 처음엔 링크드 리스트로 할까했는데 Singly 하게 구현해서는 안 됐고 Doubly까지 구현해야 했다. STL의 리스트가 Doubly로 구현되어 있다고 알아서 그걸 사용할까 생각했다. 그런데 최대로 필요한 경..

PS/백준 2022.04.30