분류 전체보기

딥러닝 프레임워크텐서플로구글이 개발한 오픈소스 라이브러리로 데이터 플로우 그래프 구조를 사용한다. 즉, 수학 계산식과 데이터의 흐름을 노드와 에지를 사용한 방향 그래프로 표현한다. 노드 간의 연결이나 다차원 배열을 의미하는 텐서 사이의 연결관계를 표현할 수 있다. 주로 이미지 인식이나 반복 신경망 구성, 기계 번역, 필기 숫자 판별 등을 위한 각종 신경망 학습에 사용된다. 케라스텐서플로는 딥러닝 모델을 만들기 위해서 기초 레벨부터 작업해야 하는 문제가 있다. 이를 해결하기 위해서 케라스는 단순한 인터페이스를 제공한다. 케라스의 구성 요소는 모듈 형태로, 각 모듈이 독립성을 갖기 때문에 새로운 모델을 만들 때 각 모듈을 조합해 쉽게 새로운 모델을 만들 수 있는 장점이 있다.Model Class : Sequ..
sklearn의 필기 숫자 데이터셋을 받아서 predict하는 것의 성능을 비교해볼 것이다. sklearn의 필기 숫자 데이터는 8*8 맵으로 표현되어 있다. 이 데이터셋을 받아 예측하는 것의 성능을 측정할 건데, 학습에 사용되지 않은 새로운 데이터에 대한 성능을 측정해야 한다. 이를 일반화 능력이라고 하고 혼동 행렬을 사용해 성능을 측정할 것이다. 먼저 주어진 데이터를 train, validation, test set으로 나누고 이 결과 성능을 확인해볼 것이다. 1. SVMfrom sklearn import datasetsfrom sklearn import svmfrom sklearn.model_selection import train_test_splitimport numpy as np# 훈련 집합과 ..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 문제 풀이today, terms, privacies 를 받아서 오늘 처리해야 할 개인정보 번호를 오름차순으로 answer에 저장해야 한다. 숫자 요소가 전부 string으로 들어오기 때문에 약간 까다롭다. 그리고 날짜를 어떻게 구분해야 할지 고민했는데, 전체 날짜를 '일'로 환산해서 오늘 날짜와 비교해서 기간이 지났는지 구분했다. #include #include #include #include using namespace std..
· PS/BOJ
1. 문제https://www.acmicpc.net/problem/14502 2. 문제 풀이이 문제는 지도를 순회하면서 바이러스가 퍼지지 않은 안전영역의 최대 크기를 구해야 한다. 여기에서 바이러스가 최소한으로 퍼지도록 벽을 총 3개만! 놓을 수 있다.  그래서 지도에서 0인 구역을 찾고 벽을 세운 다음(1로 처리), 3개의 벽을 다 세우고 나면 bfs를 통해서 안전구역의 개수를 구한다. 그래서 0인 구역을 찾을 때는 완전탐색, 바이러스가 퍼지고 난 후 안전구역을 찾을 때는 BFS를 사용해야 한다. 마지막으로 안전구역의 최대값을 구해주면 된다.#include #include #include using namespace std;int dx[4] = {-1, 0, 1, 0};int dy[4] = {0, 1,..
· PS/BOJ
1. 문제https://www.acmicpc.net/problem/1753 이 문제는 시작점 k부터 나머지 간선까지 최단 경로를 구하는 문제다. 정점과 간선의 개수는 1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000로 아주 큰 숫자다. 이를 주의해서 풀이해야 한다. 2. 문제 풀이처음에는 다익스트라 알고리즘을 사용해서, 2차원 벡터 weight에 각각의 방향 그래프를 초기화하고, distance를 업데이트하는 방식을 사용했다. 이렇게 하니까 메모리 초과가 떴다. 그 이유는 위에선 언급한 것처럼, 정점과 간선의 개수가 너무 많은데, 불필요하게 weight를 (n+1) * (n+1) 크기를 갖도록 설정해 희소행렬이 되어버렸다. #include #include #include #define INF 99..
· PS
1. 문제https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5LrsUaDxcDFAXc&categoryId=AV5LrsUaDxcDFAXc&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=1 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 2. 문제 풀이이 문제는 입력받은 숫자를 검사해서 최대 이익을 구해야 한다. 단, 하루에 하나만 구매할 수 있고 매매..
신경망퍼셉트론퍼셉트론은 뉴런에서 착안한 아이디어로 다층 퍼셉트론과 딥러닝에서 핵심 개념이다. 입력층과 출력층으로 구성되며 i 번째 에지는 xi와 wi를 곱해서 출력층으로 전달된다. 출력노드 o는 d+1개의 곱셈을 모두 더한 s를 계산하고 활성함수를 적용한다. 활성함수는 뉴런을 활성화하는 과정을 모방한 함수로 퍼셉트론은 계단함수를 사용한다. 학습 알고리즘사람이 어떤 것을 학습하는 원리와 아주 유사하다. 예를 들어 사람이 수영을 한다고 하자. 수영을 위해 동작을 취하고 만족스러우면 그대로 수영하면 되는데, 만족스럽지 않다면 약간 조정해서 새로운 자세로 동작을 수행한다. 이처럼 조금 더 나은 방향을 향해 개선하는 것인데, 신경망은 가중치를 최적화하는 방향으로 개선한다. 이때 손실함수 J를 계산해서 J(w) 값..
머신러닝의 종류머신러닝의 종류는 3가지로 나눌 수 있다. supervised : 지도학습은 정해진 답을 알려주면서 학습시키는 방법이다. input으로 label(답)을 입력시키고 이것을 학습한 것을 바탕으로 예측하는 방법이다.unsupervised : 비지도학습은 정해진 답을 제공하지 않고 비슷한 데이터끼리 clustering 하는 방법이다.reinforcement : 머신러닝의 꽃이라 불리는 강화학습은 정답이 따로 없고 본인이 학습하고 난 후 보상을 받는 방식으로 학습된다. 머신러닝 모델링과 예측머신러닝에서 데이터셋은 특징 벡터와 레이블로 표현된다. 일반적으로 기계 학습 모델을 학습시키는데 쓰이는 것을 train set, 기계 학습 모델의 성능을 평가하기 위해서 사용되는 것이 test set이다. tr..
Instruction Set Architecture(ISA) 명령어는 컴퓨터가 이해할 수 있는 언어이자 프로세서가 돌아가게 하기 위한 최소 단위이다. 소프트웨어와 하드웨어의 인터페이스라고 할 수 있다. 여기에서 잠시 생각해보자. 인텔 CPU와 AMD CPU는 같을까? 동일한 아키텍쳐를 가진다. 그 이유는 OS를 설치해보면 알 수 있는데, 동일한 명령어 집합을 공유하고 있기 때문이다. 그러나 마이크로아키텍쳐는 다르다. 동일한 명령어 집합을 사용하면서, 회사마다 회로 설계방식은 다를 수 있기 때문이다. 지난 글에서 언급했듯 마이크로아키텍쳐는 CPU의 하드웨어 설계를 말한다. 컴퓨터는 2개의 상태를 가지는데, register와 memory이다. 우리는 명령어를 사용해서 각각의 상태를 관리해주어야 한다. 관리하..
컴퓨터란?컴퓨터란 계산하는 기계라는 의미로, 수학적 논리적 계산을 수행하는 기계다. Von Neumann Architecture은 모든 현대 컴퓨터의 시초라고 할 수 있다. 초기 컴퓨터는 기능에 따라 회로를 하나하나 바꿔야 했다. 그러나 효율성이 크게 떨어지는 문제로 모든 프로그램을 메모리 안에 저장하기 시작했다. 이것이 Stored Program Computer(내장형 프로그램 컴퓨터)이다. 대부분 Sequential로 동작한다. Processing Unit은 산술 논리 장치와 레지스터를 의미하고 Control Unit은 명령 레지스터와 Program Counter를 의미한다. 메모리에는 프로그램에 필요한 데이터와 명령어가 저장된다.그러나 이 아키텍쳐는 병목현상이라는 문제점이 있다. 이는 CPU와 메모..
소-은
'분류 전체보기' 카테고리의 글 목록 (2 Page)