컴퓨터 공학 61

👉 [알고리즘] MSE(Mean Squared Error) 간단 정리

추천 엔진을 구현하며, ALS(Alternating Least Sqaure) 를 기반으로 Matrix Factorication 모델을 구현하고 있다. 그 중, 평가를 위한 함수인 MSE(Mean Sqaured Error) 를 구현하며 이해한 부분을 바탕으로 간단 정리한다. 평균제곱오차(MSE)는 Regression 과 같은 실수 기반의 결과에 대한 오차를 판별하는 방식이다. Classification 과 같은 경우, 맞다/아니다가 판별이 가능하지만, 주식 가격 예측과 같은 수치 판단은 애매한 경우가 많다. 예시로, 실제 값이 100,000 원인 주식 가격을 내가 만든 모델이 95,000원 이라고 판별한다면, 이 모델이 얼마나 잘 판단한 것인지 애매하다. 따라서 실제 값과 예측값의 차이를 기준으로 오차를 ..

👉 [Python] String 값으로 함수 호출하기

String 값으로 함수를 실행시키고자 할 때 쓰는 방법 locals()[String 변수]() 공식문서 locals() Update and return a dictionary representing the current local symbol table. Free variables are returned by locals() when it is called in function blocks, but not in class blocks. 공식문서에 따르면 local 변수에 대해서 dict type으로 반환한다고 한다. 테스트 해보면 다음과 같다. a = 1 b = [1,2,3] def test(): print("Go !") print("locals():", locals()) print() print("l..

컴퓨터 공학 2019.12.05

👉 [알고리즘] 추천 알고리즘 CF (Collaborative Filtering) 이해

추천 알고리즘이 대세가 된 시점이다. 유저들은 내가 원하고 좋아하는 아이템을 추천 받는 것을 좋아하며 각종 기업들은 소비자의 니즈를 파악하여 결제까지 연결시키고자 한다. 그 중심에 있는 것이 바로 추천 알고리즘 (Recommendation Algorithm) 이다. 아마도 가장 유명한 추천 알고리즘을 이용한 기업은 넷플릭스나 유튜브가 아닐까 싶다. 내가 본 영상들, 얼마나 오래 봤는지, 추천해줬던 영상들 또한 클릭 했는지.. 등 다양한 데이터를 이용하여 유저들에게 추천하고 계속 서비스에 머무르게 유도한다. 이번에는 이 알고리즘은 어떤 원리로 구현하는지 대표적인 알고리즘으로 정리해보고자 한다. Collaborative Filtering 협업 필터링은 단어에서 유추할 수 있듯이, 다른 사용자들과의 협업을 통..

👉 [알고리즘] You Only Look Once (YOLO) 욜로 이해

You Only Look Once: Unified, Real-Time Object Detection Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi (Submitted on 8 Jun 2015 (v1), last revised 9 May 2016 (this version, v5)) 위 논문 내용에 대한 이해 및 서치를 바탕으로 개인적인 정리 내용입니다. 가끔 잘못 이해한 내용이 있을 수도. 기존의 컴퓨터 비젼 분야의 객체 인식 (Image Detection) 은 두 가지 단계를 거쳤다. YOLO 이전에 주류 객체 인식 알고리즘인 R-CNN 을 예시로 들어보자. 이미지 내의 특정 영역을 먼저 캐치한 후 (Region Proposal), 이에 대한 분..

👉 [Linux] unsupported class file major version 55 해결 방법

리눅스 환경에서 spark를 돌리다가 java 버젼 관련 문제가 생겼다. java -version 출력 : openjdk version "11.0.4" 2019-07-16 stackoverlfow를 뒤지다 보니, java 버젼 변경 방법을 알려주었다. sudo update-alternatives --config java 했으나 적용이 안된건지 java -version 해도 똑같았다. 그래서 아래와 같이 강제 세팅을 해주니 잘됐다. sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

컴퓨터 공학 2019.11.03

👉 [Spark] java.net.BindException : Service 'sparkDriver' failed after 16 retries 오류 해결 방법

Linux 에 Spark 최신버젼을 설치 및 자바 정상 설치했으나, ./spark-shell 로 bin 폴더 내의 쉘스크립트 실행시에 위 이미지와 같은 오류가 발생한다. java.net.BindExcpetion: 요청한 주소를 배정할 수 없습니다: Service 'sparkDriver' failed after 16 retries ( on a random free port) ! 해결 방법 ! 1. hostname 을 통해 현 호스트네임 확인 2. /etc/hosts 를 열어서 안에 127.0.0.1 "호스트네임" 추가 정상적으로 구동 되는 것을 볼 수 있다. ( 워닝이 뜨긴 하지만 그건 그거대로 해결하도록 하자,)

컴퓨터 공학 2019.11.01

👉 [번역] 객체 인식(Object Recognition) 이해 : 딥러닝 vs 머신러닝 방식

출처 : https://www.mathworks.com/solutions/image-video-processing/object-recognition.html 영상 내 물체를 식별하는 과정은 객체 검출(Object Detection)과 객체 인식(Object Recognition) 으로 크게 나눌 수 있다. 그 중 객체 인식에 대한 좋은 글이 있어 번역 및 정리를 하기 위해 가져왔다. 알고 있는 내용을 통해 직역했기 때문에 원본과 단어 선택에 있어서 느낌 차이가 있을 수 있다. What Is Object Recognition? Object recognition is a computer vision technique for identifying objects in images or videos. Object..

👉 [Github] 깃허브 repository 이름 변경

깃허브의 프로젝트 명을 바꾸고 로컬의 깃에서도 변경된 주소로 푸시가 가능하도록 변경하고자 하는 경우. 깃허브 repository 접속시 Settings 메인에 Repository name 에 이름을 넣고 Rename 시킨 후, 로컬 깃에서 git remote set-url origin "새 주소" 위 명령어를 통해 원격 연결이 가능하다. git remote -v 위 명령어를 통해 변경된 원격 저장소 확인 가능.

컴퓨터 공학 2019.10.28

👉 [Python] 싱글톤(Single) 패턴으로 DB 접근하기

싱글톤 패턴? 디자인 패턴 책을 읽다보면 빠지지 않는 패턴이다. In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one "single" instance. This is useful when exactly one object is needed to coordinate actions across the system. 출처 : 위키피디아 singleton pattern 해석 : 소프트웨어 엔지니어링에서, 싱글톤 패턴은 클래스의 생성을 오직 한가지 인스턴스로만 제한하는 소프트웨어 디자인 패턴이다. 이는 시스템 전체적으로 행동을 제어하는데에 한..

컴퓨터 공학 2019.10.25

👉 [SQL] 기본적이고 자주 사용하는 SQL 문법 정리

Structured Query Language: SQL 데이터 베이스 질의 언어 무슨 프로젝트를 하던, DB는 빠질 수 없는 요소이다. 나 또한 그렇기에 자주 사용한다. 하지만 다른 일을 하다가 SQL 작성하려면 종종 까먹기 마련이었다. 기본적인 것만 이 기회에 정리하고자 한다. - INSERT : 데이터 입력 구문 INSERT INTO 테이블이름 (필드1, 필드2, ...) VALUES (value1, value2, ...); ex) INSERT INTO user (name, password) VALUES ("Park Boyoung", "asd123"); - UPDATE : 데이터 수정 구문 UPDATE 테이블이름 SET field1=value1, field2=value2 WHERE field3 = v..