본문 바로가기

전체 글44

[백준] 2225번 [python] [백준] 2225번 [python] 문제 https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 해당문제는 DP문제로 점화식을 구하면 풀수있다. 해당 점화식을 구해보도록 하자 N = 4, K = 3라고 가정할때 정수 0을 만들기 위해 갯수 1개인경우는 (0), 1개 갯수 2개인경우는 (0,0), 1개 갯수 3개인경우는 (0,0,0) , 1개이다. 또한 정수 2를 만들기 위해 갯수 1개인경우는 (2), 1개 갯수 2개인경우는 (0,2), (0,2), (1,1), 3개 갯수 3개인경우는 (0,0,2), (0,2,0), (2,0,0), (0,1,1), (1,0,1), (1,1,0),.. 2020. 11. 3.
5장 컴퓨터 비전을 위한 딥러닝1 5장 컴퓨터 비전을 위한 딥러닝1 이번 장에는 컨브넷(convnet)이라고 불리는 합성곱 신경망(convolutional neural network)에 대해 학습하고 MNIST 숫자 이미지 분류 예시를 활용하여 컨브넷을 사용해보자 5.1 합성곱 신경망 소개 다음 코드는 기본적인 컨브넷의 모습이다. Conv2D와 MaxPooling2D 층을 쌓아올렸습니다. model = models.Sequential() # 컨볼루션 층 model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3.. 2020. 10. 29.
4장 머신러닝의 기본요소 4장 머신러닝의 기본요소 3장에서는 3개의 예시를 통해 분류와 회귀에 대해 학습했습니다. 이 장에서는 딥러닝 문제에 도전하고 해결하기 위한 개념을 정립해나가겠습니다. 4.1 머신러닝의 네가지 분류 4.1.1 지도 학습 지도학습은 가장 흔한 경우입니다. 샘플 데이터가 주어지면 알고있는 타깃에 입력데이터를 매핑하면서 학습합니다. 지도학습의 대부분은 분류와 회귀로 구성되지만 몇몇 변종들도 존재합니다. 4.1.2 비지도 학습 비지도 학습의 경우 어떤 타깃도 사용하지 않고 입력데이터의 흥미로운 변화를 찾습니다. 데이터 시각화, 데이터 압축, 데이터 노이즈 제거 등 데이터에 있는 상관관계를 찾아내어 이용합니다. 4.1.3 자기 지도 학습 자기 지도 학습(self-supervised learning)은 지도학습의 특.. 2020. 10. 28.
3장 신경망 시작하기2 3장 신경망 시작하기2 3.5 뉴스기사 분류: 다중분류문제 이전 이중분류문제의 경우 2개의 클래스(긍정, 부정)를 분류하는 문제지만, 이번 문제는 46개의 클래로 분류하는 다중분류의 예입니다. 3.5.1 로이터 데이터셋 로이터 데이터셋은 46개의 토픽이 있으며, 각 토픽의 훈련세트는 최소한 10개의 샘플을 가지고 있습니다. # 로이터 데이터셋 로드하기 from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000) # 로이터 데이터셋을 텍스트로 디코딩하기 word_index = reuters.get_word_index() reverse_word_i.. 2020. 10. 26.
[프로그래머스] 징검다리 [프로그래머스] 징검다리 문제 https://programmers.co.kr/learn/courses/30/lessons/43236?language=python3 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 나는 이분탐색문제가 나오면 조합으로 풀려는 아이디어가 가장 먼저 떠오른다. 실제로 테스트케이스의 범위가 제한적이라면 분명 조합으로 더 쉽게 풀수 있을것이다. 하지만 이분탐색의 문제는 범위가 굉장히 크고, 절대 조합으로 풀수없게 테스트케이스를 구성해놓는다. 이런점을 간과하고 문제를 풀때 조합.. 2020. 10. 24.
병합정렬(Merge Sort) 병합정렬(Merge Sort) 병합정렬은 전체 리스트를 두 개의 균등한 크기로 분할하면서 하나의 원소로 분할될때까지 계속해서 반복합니다. 분할을 끝내면 합병하는 과정을 거치면서 리스트를 정렬해나갑니다. 분할 정렬되지 않은 리스트를 하나의 단위로 각각 분할합니다. 병합 하나의 단위로 분할된 원소들을 비교해나가면서 병합을 진행합니다. 2개의 리스트를 병합할때 매번 sort를 진행하는데 2개의 리스트의 첫번째 자리부터 비교해나가면서 sort를 진행하면 됩니다. python 코드 # 1. 분할 def merge_sort(arr): # arr : 정렬이 안된 리스트 if len(arr) 2020. 10. 13.
5장 컴퓨터 비전을 위한 딥러닝2 5장 컴퓨터 비전을 위한 딥러닝2 5.3 사전에 훈련된 커브넷 사용하기 작은 이미지 데이터셋에 딥러닝을 적용하는 일반적이고 효과적인 방법은 사전에 훈련된 네트워크를 사용하는 것입니다. 사전 훈련된 네트워크(pretrained network)는 일반적으로 대규모 이미지 분류 문제를 위해 대량의 데이터셋에서 미리 훈련되어 저장된 네트워크 입니다. 사전훈련된 네트워크를 사용하는 방법은 두가지 있습니다. 특성추출(feature extraction), 미세조정(fine tuning)입니다. 먼저 특성추출부터 시작해봅시다. 5.3.1 특성추출(feature extraction) 특성추출은 사전에 학습된 네트워크의 표현을 사용하여 새로운 샘플에서 흥미로운 특성을 뽑아내는것입니다. 이러한 특성을 활용하여 새로운 분류기.. 2020. 9. 23.
CNN 나만의 정리 CNN 나만의 정리 1. CNN 1.1 CNN 구조 CNN의 경우 일반적인 신경망과 진행은 비슷하지만, feed forward 부분에서 일반적 신경망에서의 은닉층 부분을 CNN에서는 완전연결층으로 수행한다. 1번 : 입력데이터 x와 t를 insert 2번 : feedforwad 과정 컨볼루션층과 완전연결층을 거쳐 출력 y를 내보낸다 3번 : 출력 y값이 최소값인지 아닌지 판단 4번 : 최소가 아니라면 계속해서 반복 옵티마이저를 사용하여 W, b를 업데이트 5번 : 최소일경우 학습 종료 1.2 컴볼루션층 개요 컨볼루션 층에서는 총 3가지 단계로 순서대로 이루어져 있다. 입력데이터와 필터들과의 컨볼루션 연산을 통해서입력 데이터 특징을 추출하여 특징 맵을 만들고 (conv) 특징맵에서 relu를 통해 필요없는.. 2020. 9. 17.
오차역전파 나만의 정리 오차역전파(Back Propagation) Review - 수치미분 문제점 딥러닝 학습에서 사용되는 수치미분의 경우 입력이 클경우에 가중치와 bias의 수치미분연산이 오래걸린다. 이러한 문제를 해결하기 위해 오차역전파를 사용한다. 1. 오차역전파(Back Propagation) 개념 원리 가중치나 bias를 편미분 하는대신에 체인 룰을 이용하여 하나의 국소 미분으로 분리 한후에 수학적으로 계산하는방법을 오차역전파라고 한다. 쉽게 말해서 편미분 대신 행렬 표현으로 만들어서 계산하는것! 행렬로 계산하기 때문에 속도가 빠르다. 2. 오차역전파의 패턴 미분의 방법에서 행렬곱 방법으로 변환할때 복잡한 수학 증명 과정이 있습니다. 하지만 변환 결과에서 오차역전파의 일정한 패턴을 보이고 해당 공식 패턴을 잘 활용하여.. 2020. 9. 16.
딥러닝 기초 나만의 정리 2 딥러닝 1. 딥러닝으로 XOR문제 해결 XOR 문제로 알아보는 딥러닝 아키텍처 위 그림은 XOR 데이터를 입력으로 하는 딥러닝의 아키텍처를 그린것이다 해당 아키텍처는 입력층 - 은닉층 - 출력층으로 이루어져있고, 은닉층의 경우 여러개의 은닉층을 만들수 있다. 다만 은닉층과 노드 수가 많아지면 학습 속도가 느려지고 정확도에 문제가 발생할수 있기 때문에 적절한 개수의 은닉층과 노드수를 고려하여 구현해야한다. 딥러닝이 한 번 훈련할때 위 1~4번까지 순서대로 반복하는데 아래 상세하게 작성해보겠다. 1번 Input!! x1, x2의 입력데이터를 입력층에 넣는다. 2번 feed forward feed forward 과정으로서 각각의 층의 출력이 다음 층의 입력값으로 들어가는 과정이다 입력층의 output은 은닉층.. 2020. 9. 16.