import sys
sys.setrecursionlimit(10**6)
from collections import defaultdict
def solution(a, edges):
global answer, graph
graph = defaultdict(list)
answer = 0
for v1, v2 in edges:
graph[v1].append(v2)
graph[v2].append(v1)
dfs(a, 0, -1)
return -1 if sum(a) else answer
def dfs(a, node, parent) :
global answer
for child in graph[node] :
if child == parent : continue
dfs(a, child, node)
a[parent] += a[node]
answer += abs(a[node])
a[node] = 0
pair = {')' : '(', '}' : '{', ']' : '['}
def check(s) :
answer = 0
stack = []
for sign in s :
if sign in '({[' : stack.append(sign)
elif stack and stack[-1] == pair[sign] : stack.pop()
else : return 0
if not stack : answer += 1
return 0 if stack else answer
def solution(s) :
s = s+s
for i in range((n := len(s)//2)) :
if (answer := check(s[i:i+n])) == 0 : continue
return answer
return 0
def solution(absolutes, signs):
return sum(absolute if sign else -absolute for absolute, sign in zip(absolutes, signs))
์ง๋ ํฌ์คํ ์์ dropout ์ ๊ทํ + GPU๋ฅผ ํฌํจํ๊ฒ๋ ๋ฆฌํฉํ ๋ง ํด๋ณด์๋ค.
pytorch๋ฅผ ์ด์ฉํ 1 ~ 5์ธต ๊น์ง์ ์ ๊ฒฝ๋ง ๊ตฌ์ฑํด๋ณด๊ธฐ.
jupyter notebook์์ MNIST๋ฐ์ดํฐ๋ฅผ ๋ฐ์ผ๋ ค ํ์ง๋ง, ์คํ์ด ๋์ง์์ colab์์ MNIST ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ๋ฐฉ์์ผ๋ก ํ๋ค.
Neural Network์ ์๋ ์๋ฆฌ๋ฅผ ์์๋ณด๊ธฐ์ํด Logistic Regression์ hidden layer๋ฅผ 1์ธต ์ถ๊ฐํด๋ณธ๋ค. ์ด hidden layer๋ฅผ ์ถ๊ฐํจ์ผ๋ก์ ๊ธฐ์กด์ Logistic Regression์ผ๋ก ํ๋ณํ์ง ๋ชปํ๋ XOR problem๋ ํด๊ฒฐ ํ ์ ์๊ฒ๋๋ค. ๊ทธ ์ด์ ๋ hidden layer๊ฐ ์ถ๊ฐํ๊ฒ๋๋ฉด ๊ตฌ๋ณ์ ๊ธฐ์ค์ด ๋๋ hyper plane์ ์ฌ๋ฌ๊ฐ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์ ์ด๋ถ๋ฒ์ ์ธ ์์ธก์ ํ์ง์๊ณ ๋์ฑ ์ ์ฐํ๊ฒ ์์ธก์ ํ ์ ์๊ฒ ๋๋ค.

logistic function์ ์ค์ ์ ์ฒด์งํฉ $x$๋ฅผ [0, 1] ์ฌ์ด ๊ฐ์ผ๋ก ์ถ๋ ฅํด์ฃผ๋ ํจ์๋ค.
\[y = \frac{1}{1+e^{-x}}\]
