일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dp
- linux
- 리눅스
- 알고리즘
- 브루트포스
- 파이썬
- BFS
- 구글 킥스타트
- 딥러닝
- 프로그래밍
- 백준
- 순열
- AI
- 그래프
- 킥스타트
- 코딩테스트
- OS
- 네트워크
- 코딩
- 프로그래머스
- nlp
- DFS
- 동적프로그래밍
- 코딩 테스트
- google coding competition
- 운영체제
- kick start
- 동적 프로그래밍
- CSS
- PYTHON
- Today
- Total
목록분류 전체보기 (312)
오뚝이개발자
BERT 원논문 링크 What is BERT? Bidirectional Encoder Representations from Transformers Can be fine-tuned with jus one additional output layer for a wide range of task Don't need task-specific architecture Motive BERT는 left to right LM이 sentence level task에서 sub-optimal이라는 점을 지적 기존 LTR LM은 주로 양방향으로부터의 문맥정보를 incorporate하는 것이 중요한 경우 취약(e.g. question answering) Transformer에서 착안한 BERT Encoder Attention을 사..
강화학습은 근래 들어 많은 발전이 이루어진 학습 방법이다. 간단히 설명하자면, agent와 environment를 두고 agent가 어떠한 action을 할 때마다 환경으로부터의 피드백(긍정/부정)이 온다. 이를 기반으로 학습을 하는 것이 바로 강화학습(RL)이다. 그런데 이러한 강화학습이 게임 분야에서는 매우 많이 사용이 되지만 왜 현실적인 문제들(예컨대, 자율주행)에서는 실적용이 어려울까? 다른 말로는, 왜 practical하게 적용하지 못할까? RL은 근본적으로 trial-and-error 방식으로 작동한다. 즉, 어떠한 시도(action)를 해보고 이에 대한 에러를 feedback을 통해 수정하는 방식으로 학습이 진행된다. 하지만, 현실세계에선 이러한 실패(error)가 일어나선 안되는 경우가 많..
ML로 해결하려는 task에서 기본적인 것은 분류, 회귀이다. 대부분의 task들은 사실 이 둘의 컴포넌트로 구분이 가능하다.(object detection과 같이 분류와 회귀가 섞인 task들도 있다.) 분류의 경우 이진분류(binary classification), 다중분류(multi-class classification)으로 나눌 수 있다. 그럼 각각에서 output layer의 양상은 어떠한지, 사용하는 activation function은 무엇인지 알아보자. 종류 output #(output layer의 unit 갯수) activation function 이진분류(binary classification) 1개 sigmoid 다중분류(multi-class classification) n개(clas..
우리가 일반적으로 모델을 설계하고 평가할 때 overfitting이 발생하면 좋지 않은 것으로 인식하곤 한다. 하지만 이러한 overfitting이 마냥 나쁘기만 할까? overfitting이 가져다 줄 수 있는 이점은 없는걸까? 사실 답은 NO이다. 우리가 overfitting으로부터 얻을 수 있는 insight도 있다. 어떠한 이점들이 있을까? 우리가 어떠한 문제를 해결해보고자 모델을 설계했다고 가정해보자. 그런데 안타깝게도 학습 결과 해당 모델이 과적합을 일으킨다. 하지만 좌절할 필요는 없다. 일단 오버피팅이 일어났다는 것은 말그대로 '학습' 자체는 잘 이루어졌다는 점을 생각해볼 수 있다. 여기에 착안한다면 '처음으로' 설계해 '처음으로' 학습을 한 모델이 오버피팅을 발생시켰다면 우린 아래와 같은 ..
케라스의 구조가 내부적으로 어떻게 되어있는지를 파악하는 것은 본인이 어느 위치에서 작업을 하고 있는가를 파악하는데 중요하다. 오늘은 케라스의 시스템이 내부적으로 어떻게 구성되어 있는지에 대해 알아보자! 아래 그림은 케라스의 내부 구조를 도식화 한 것이다. 중앙의 큰 사각형은 하나의 가상환경(virtual environment)이다. 이러한 가상환경은 user가 만들기에 따라 여러개 있을 수도 있다.(virtual env1, virtual env2...) 실제로 우리가 직접 다루는 부분은 바로 python, keras 부분이다. 사실 케라스를 사용하면 그 아랫단인 tensorflow까지도 잘 만지지 않는다.(디테일한 텐서 level에서의 설정이 필요한 경우가 아니고서는 말이다.) 그 아랫단인 cuDNN, ..
문제 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 나의 풀이 DP를 사용해 쉽게 풀 수 있는 문제이다. input으로 주어진 각 수는 아래의 연산 중 한 가지를 할 수 있다. 2로 나누어 떨어지면 2로 나눈다. 3으로 나누어 떨어지면 3으로 나눈다. 1을 뺀다. 이를 반복해서 결과적으로 1이란 수를 만들어야 하는데, 이를 DP의 점화식과 연관지어 생각해보면 쉽다. 만약 내가 10이란 수를 input으로 받는다고 가정해보자. 10->5->4->2->1 10->9->3->1 10->9->8->7->...->1 위의 경우 말고도 10을 1로 만들기 위해선 굉장..
웹 클론 코딩을 할 때에 유용한 익스텐션 몇 가지를 소개한다. 해당 내용은 유튜버 노마드코더에서 참고한 것이다. 1. colorzilla 웹에서 특정 색깔의 RGB 코드값을 알 수 있게 해준다. 2. cssviewer 웹에서 특정 부분의 css 코드를 보여준다. 3. jsonviewer json 형태의 웹 정보를 좀 더 가독성이 있는 형태로 바꾸어준다. 4. whatfont 웹에서 사용하고 있는 font가 무엇인지 알려준다. 5. page ruler redux 웹 페이지에서 마치 자(ruler)처럼 특정 규격을 측정하는데 도움이 된다. 6. builtwith 웹이 어떠한 기술 스택으로 이루어져있는지 파악하는데 도움이 된다. https://www.youtube.com/watch?v=KtzSsrYj440
딥러닝 층을 구성할 때 행렬 계산이 어떻게 이루어지는지를 이해하는 것이 중요하다. 그래야 행과 열의 수를 잘 맞추어 계산을 할 수 있기 때문이다. 이 글에선 Keras를 사용한 코드에서 실제 행렬 연산이 어떻게 이루어지는지 그림으로 도식화하여 설명하고자 한다. 아래와 같은 간단한 딥러닝 모델을 구성하는 코드가 있다고 해보자. network.add(layers.Dense(512, activation='relu', input_shape=(28*28,))) network.add(layers.Dense(10, activation='softmax')) network.fit(train_images, train_labels, epochs=5, batch_size=128) keras의 Dense() 메서드 안의 수는 ..