분류 전체보기 59

cs231n Assignment 1: Q4 (Two Layer Network 구현)

내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git 이번 과제는 본격적으로 layer 을 2개 가진 간단한 이중 신경망을 구현해 보는 것이었다. 각 layer에는 전파, dW를 얻기 위한 역전파를 사용하기 위해 layer.forward(), layer.backward()를 두개씩 구현해야 한다. layer를 지나면서 결과를 마지막 layer인 Loss function을 통과하여 결과를 도출하고, Loss function에서 역전파하여 각 layer들의 dW값을 learning rate에 따라 조절해 가며 신경망을 학습시킨다. def affine_forward(x, w, b): out = None # *****START OF YOUR CODE (DO NOT D..

cs231n 2023.02.01

cs231n Assignment1: Q3 (Softmax layer, SGD 구현)

내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git 이번 과제는 주된 목표는 softmax 함수의 forward, backward를 구현하는 것, 그리고 Stochastic Gradient Descent를 구현하는 것이다. Softmax함수란 Loss function의 일종으로 cross entropy 함수와 같이 사용하여 Li = -log (정답 클래스의 점수 / 모든 클래스의 점수의 합) 으로 표현된다. 정답 / 전체 를 다르게 생각하면 확률로 생각 할 수 있기에 각 클래스의 예측 확률로 생각 할 수도 있는 것이 특징이다. 여기서 각 클래스의 점수는 e에 해당 클래스의 출력값을 곱하여 계산한다. 이 과제에서의 softmax()함수는 단지 softmax함수..

cs231n 2023.02.01

백준 2367번: 파티 (Maximum Flow)

문제링크:2367번: 파티 (acmicpc.net) 2367번: 파티 첫째 줄에는 N, K, D가 주어진다. 다음 줄에는 D개의 정수가 주어지는데, 이는 각 음식의 종류마다 가져올 수 있는 양의 제한을 의미한다. 이 값은 N보다 작거나 같은 음이 아닌 정수이다. 다음 N개 www.acmicpc.net 이 문제는 최대 유량을 이용한 문제이다. 최대 유량이란 그래프의 각 간선마다 최대로 흘려보낼 수 있는 가중치가 정해져있을 때, 시작 노드 (source) 에서 끝 노드 (sink) 까지 보낼 수 있는 가중치들의 최대 합을 구하는 문제이다. 최대 유량문제를 해결하는 방법에는 여러가지 알고리즘이 있지만 흔히 사용하는 에드몬드-카프 알고리즘을 사용해서 문제를 해결하였다. 각 간선이 보낼 수 있는 가중치를 capa..

백준 2023.01.31

cs231n Assignment 1: Q2 (Support Vector Machine 모델 구현)

과제링크:Assignment 1 (cs231n.github.io) Assignment 1 This assignment is due on Friday, April 15 2022 at 11:59pm PST. Starter code containing Colab notebooks can be downloaded here. Setup Please familiarize yourself with the recommended workflow before starting the assignment. You should also watch the Colab cs231n.github.io 내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git 이번 과제는 Support Vecto..

cs231n 2023.01.29

cs231n Assignment 1: Q1 (K Nearest Neighbor 모델 구현)

딥러닝을 공부해 보고 싶어 인터넷을 찾아보던 중 cs231n이라는 신경망 중 이미지 처리에 보편적으로 사용되는 다양한 알고리즘, 그리고 신경망 중 CNN에 집중하여 설명하는 강의가 있다는 것을 보고 강의를 보고 매 주차별 과제를 따라가 보며 공부해 보려고 한다. 과제 링크는 아래에 있고 강의 영상은 유튜브에서 찾아볼 수 있다. 과제링크:Assignment 1 (cs231n.github.io) Assignment 1 This assignment is due on Friday, April 15 2022 at 11:59pm PST. Starter code containing Colab notebooks can be downloaded here. Setup Please familiarize yourself wi..

cs231n 2023.01.27

백준 16903번: 수열과 쿼리 20 (Trie)

문제링크:16903번: 수열과 쿼리 20 (acmicpc.net) 16903번: 수열과 쿼리 20 첫째 줄에 쿼리의 개수 M(1 ≤ M ≤ 200,000)이 주어진다. 둘째 줄부터 M개의 줄에 쿼리가 주어진다. 입력으로 주어지는 x의 범위는 109보다 작거나 같은 자연수이다. 3번 쿼리는 하나 이상 주어진다. www.acmicpc.net 이 문제는 특이하게 배열 A에 원소 x를 추가하거나 원소 x를 제거하거나, 또는 임의의 k가 주여졌을때 A의 임의의 원소 x와 x XOR k 연산을 했을때 얻을 수 있는 최대값을 구해야 하는 문제이다. XOR연산을 하기 위해 원소 x가 주어지면 x를 이진수 배열의 str로 바꾸고, 바꾼 이진수 배열을 시간 복잡도 O(N)으로 처리하기 위해 str를 트라이 형태로 저장하였..

백준 2023.01.26

백준 13537번: 수열과 쿼리 1 (Merge sort tree)

문제링크:13537번: 수열과 쿼리 1 (acmicpc.net) 13537번: 수열과 쿼리 1 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. i j k: Ai, Ai+1, ..., Aj로 이루어진 부분 수열 중에서 k보다 큰 원소의 개수를 출력한다. www.acmicpc.net 이 문제는 길이가 N인 수열이 있을 때, 쿼리의 입력이 (i, j, k) 이렇게 주어지면 i번째부터 j번째 까지의 수열의 원소 중 k 보다 큰 값들의 개수를 출력하는 문제이다. 여기서 N의 최대값은 100,000, 쿼리의 개수의 최대값도 100,000 이기 때문에 불러오는 쿼리의 시간 복잡도를 O(logN) 선에서 처리해야 한다. 나는 전에 몇번 다루었던 merge ..

백준 2023.01.25

백준 3015번: 오아시스 재결합 (Stack)

문제 링크:3015번: 오아시스 재결합 (acmicpc.net) 3015번: 오아시스 재결합 첫째 줄에 줄에서 기다리고 있는 사람의 수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에는 각 사람의 키가 나노미터 단위로 주어진다. 모든 사람의 키는 231 나노미터 보다 작다. 사람 www.acmicpc.net 이 문제는 만약 N명이 한 줄로 서있고 각 사람이 각각 의 키를 갖고 있을때, 서로를 볼 수 있는 쌍을 구하는 문제이다. 여기서 주어진 조건은 1. 키는 2^31보다 작은 숫자로 주어진다. 2. 두 사람 A,B 가 서로를 볼 수 있음을 판별할때는 만약 A,B 사이에 A키 또는 B키보다 큰 사람이 한명이라도 있으면, 볼수 없다. 처음 이 문제를 봤을때는 방향성을 못잡아서 미루어..

백준 2023.01.20