머신러닝의 정의와 사용 이유 사람이 정의한 알고리즘으로 특정 문제를 풀려면 규칙이 간단하다면 쉽겠지만 복잡할수록 어려워진다. 게다가 들어오는 데이터가 변화하고 규칙도 변화한다면? 매번 사람이 알고리즘을 뜯어 고쳐야한다. 하지만 기계에게 데이터를 던져주고 알아서 규칙을 학습하여 적용한다면? 난이도가 쉬워진다. 게다가 기계가 학습한 규칙을 분석한다면 우리가 알지 못하던 패턴을 알아낼 수 있다 (데이터 마이닝) 기계가 그렇다면 데이터를 어떻게 학습할까? 우선 4가지로 분류가 가능하다. 1. 지도학습 (supervised learning) 지도학습을 위해 투입되는 모든 훈련 데이터에는 그에 해당하는 답인 "레이블"이 포함된다. 보통 기계가 데이터들을 읽어서 원하는 레이블을 출력하도록 학습시키는 분류(classi..
말년을 알고리즘과 함께... 기나긴 군생활이 끝나갈 때 즈음 알고리즘 캠프가 시작되었고 12주간의 알고리즘 캠프는 콘테스트와 함께 막을 내렸다. 누군가가 나한테 와서 "너는 전역하고 1달동안 알고리즘에 매달려있을 거야!" 하면 뭔 소리냐고 했겠지만 현실이 되었다. 말년에 접어들고 전역하고 뭐하지 와 같은 희망고문과 무지 성 백준 문제풀이가 계속되던 도중 캠프의 존재를 알게 되었고 전역하고 늘어지면 답도 없겠다는 생각이 들어 일단 신청하고 봤다. 사실 그동안 문제들을 풀던 것을 생각하면 죄다 그래프와 DP에 몰빵 돼 있었다. 그와 다르게 정수론과 문자열 알고리즘은 관심을 안 가지다 보니 거의 문외한에 가까웠다. 이외에도 내 코드들을 들여다보면.... 참 비효율적으로 짠다는 느낌이 컸다. 이러니 Lazy S..
Convolutional Neural Network 논문 자체는 1989년에 나왔지만 여전히 컴퓨터 비전 분야에서 유용하게 쓰이는 인공 신경망인 CNN. 사람이 물체를 인식하는 방식에서 아이디어를 얻었는데 우리는 시야에 들어온 이미지 전체를 인식하지 않는다. 당연하게도 물체만에 집중하기 때문이다. 하지만 또 물체를 전부 통째로 인식할까? 아니다. 물체에도 부분적인 특성이 존재하고 그 특성들을 잘 살펴보면 가로, 세로, 대각선, 색상으로 구성된다. 우리는 이런 특성들이 주변 지역과 어떻게 이어지는지를 기억하고 나중에 비슷한 물체를 보면 떠올린다! 어떻게 생각하면 전반적인 특성을 쓰윽 보고 서서히 지역적인 특성을 본 다음 추상적인 개념을 떠올린다고 생각할 수 있다. 이런 특성을 신경망에서도 학습할 수 있다면..
이렇게 공개로 글쓰는건 오랜만... 공부 방 계약도 끝났고 옷도 장만하고 알고캠프와 AI스터디도 순항중에 있다. 다만 codeforce하고 atcoder를 최근에 엄청 말아먹었다. 둘다 참가횟수가 합쳐서 5회 언저리라지만 greedy한 접근을 되게 못하는 것 같다. 되게 자료구조나 적용할 알고리즘들을 머리 싸매고 접근하려다가 막상 끝나고 나면 한발자국 뒤로 물러나 관찰하면 짧은 코드로도 해결되는 것들이었다. 아 memset(vis,0,sizeof(vis)); fill_n(vis,n,0); 이 두놈땜에 2문제를 날려먹었다. 첫 술에 배부를 수 없다지만 잘하는 사람들보면 초반부터 휙휙 점수 올라가던데 부럽.... 금욜과 주말에는 AI 공부만 하려하지만 이런 일이 있을 때마다 집중하기가 힘들다. 균형을 맞추면..
Reference SQL FOREIGN KEY (외래키) '외래키', '외부키' 혹은 '참조키'라고도 불리는 FOREIGN KEY(이... blog.naver.com 오늘 공부하다가 삽질한 것 정리,,, (제약조건이 이리많은 줄 몰랐다) 우선 성공한 코드부터 >create table Parent( ID INT NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL, age INT UNSIGNED NOT NULL, data VARCHAR(20) NOT NULL, created_at DATETIME NOT NULL DEFAULT now(), PRIMARY KEY(ID), UNIQUE INDEX data_UNIQUE (data ASC), UNIQUE INDEX name_UN..
INSERT query SQL INSERT INTO [테이블명] (COL1, COL2 ... ) VALUES (VAL1, VAL2 ...); Seqeulize const { 테이블명 } = require('../models'); 테이블명.create({ COL1 : VAL1, COL2 : VAL2, ... )}; create 메서드를 이용하여 INSERT query를 처리하여 ROW를 추가시킬 수 있다. 단 value를 넣을 때는 sql의 자료형을 따라가지않고 sequelize 모델에 정의한대로 따라가야한다. (알아서 변환) ex) boolean value에서 0 (X) false(O) SELECT query SQL Seqeulize [테이블명].findAll({}); [테이블명].findAll({ at..
테이블에 내용을 다루는 가장 기본 방법 생성, 조회, 수정, 삭제를 하는 방법 요약 Create INSERT INTO [테이블명] (COL1, COL2 ... ) VALUES (VAL1, VAL2 ...); 값을 안넣어준 col에는 DEFAULT값 또는 AUTO_INCREMENT에 의하여 자동기입 Read SELECT * FROM [테이블명]; SELECT [col1, col2 ...] FROM [테이블명]; *을 넣으면 테이블에 있는 모든 row값들을 가져오고 2번째 줄처럼 특정 col만 들고올 수 있다. SELECT [col1, col2 ...] FROM [테이블명] WHERE [조건]; SELECT [col1, col2 ...] FROM [테이블명] ORDER BY [COL이름] [ASC|DESC]..
일병시절에는 판다스와 케라스 , 상병때는 리액트와 알고리즘 병장땐? 'Nodejs 와 DB' (진짜 별걸 다해봤다) mysql -h localhost -u root -p : 경로상관 없이 sql시작 use [DB이름] : 꼭 로그인 하면 써주자 DESC [테이블 이름] : 테이블의 column 정보 확인 SHOW TABLES : DB에 있는 테이블 목록 확인 exit : 종료 + 에러 발생시 : sudo service mysql restart CREATE TABLE nodejs.users ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL, age INT UNSIGNED NOT NULL, married TINYINT NOT NULL, comment ..
- Total
- Today
- Yesterday