CS
[BaekJoon] 백준 2869번 달팽이는 올라가고 싶다
[BaekJoon] 백준 2869번 달팽이는 올라가고 싶다 문제: https://www.acmicpc.net/problem/2869 내코드 - (v-b)/(a-b) 이 값이 나눠떨어지면 해당 값, 나눠 떨어지지 않으면 +1을 해준값이 정답이다. - 여기선 int형이라 계산을 고려해서 (v-b-1)/(a-b) + 1로 처리한다. #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(0); int a, b, v; cin >> a >> b >> v; int days = (v - b - 1) / (a - b) + 1; cout
[BaekJoon] 백준 10809번 알파벳 찾기
[BaekJoon] 백준 10809번 알파벳 찾기 문제: https://www.acmicpc.net/problem/10809 내코드 - ascii코드로 'a'는 97이다. - fill_n함수는 배열을 같은 수로 초기화 시켜주는 함수. #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(0); string input; cin >> input; int len = input.length(); int alpabet[26]; fill_n(alpabet, 26, -1); for (int i = 0; i < len; i++) { int point = input.at(i) - 97; if (alpabet[..
[Deep Learning] Auto-Encoder
[Deep Learning] Auto-Encoder Auto-Encoder 오토인코더(Autoencoder)는 단순히 입력을 출력으로 복사하는 신경망이다. 모델은 아래와 같다. 윗부분이 input, 아랫부분이 output이다. 사이의 파란선 부분은 encoder, 빨간선 부분은 Decoder이다. input = output으로 만들어주어야한다. Auto-encoder의 4가지 특징 Data Compression 데이터 압축 Data Visualization 데이터 가시화 Curse of dimensionality 차원의 저주 해결 : 우리는 고차원에서 일어나는 문제점을 알 수 없다. 다라서 고차원에 맞게 data mapping을 하려면 많은 data가 필요하다. Discovering most import..
[Deep Learning] Optimizer
[Deep Learning] Optimizer Optimizer란 loss function을 통해 구한 차이를 사용해 기울기를 구하고 Network의 parameter(W, b)를 학습에 어떻게 반영할 것인지를 결정하는 방법이다. 위의 많은 종료의 optimizer중에 몇가지만 자세히 알아보자. Gradient Descent(GD) 1회의 학습 step시에, 현재 모델의 모든 data에 대해서 예측 값에 대한 loss 미분을 learning rate만큼 보정해서 반영하는 방법. gradient의 반대 방향으로 일정 크기만큼 이동해내는 것을 반복하여 Loss function의 값을 최소화하는 θ의 값을 찾는다. optimizer = tf.train.GradientDescentOptimizer(learnin..
[Deep Learning] Dropout
[Deep Learning] Dropout 앞에서 overfitting을 완화시키는 방법 중 하나인 Regularization을 알아보았다. 이번엔 또 다른 방법인 Drop-Out을 보자. regularization이 cost function에 penalty 함수를 추가하고 그 penalty 부분에 대한 조작을 통해 결과를 얻는 방식이라면, dropout은 망 자체를 변화시키는 방식이기 때문에 둘은 근본적으로 다르다. Dropout 일반적으로 신경망에서 hidden layer의 개수가 많아지면(=DNN이 되면) 학습 능력이 좋아지지만 망의 크기가 커지면 커질수록 overfitting에 빠질 가능성이 높아지고 시간도 길어진다. 이렇게 망의 크기가 커질 경우 사용할 수 있는 방법이 dropout이다. dro..
[Deep Learning] Regularization
[Deep Learning] Regularization Regularization에 대해 자세히 알아보려면 Overfitting이 무엇인지 알아야한다. 그럼 Overfitting과 더불어 Underfitting 까지 알아보자. Overfitting 한 data set에만 지나치게 최적화된 상태 아래 그래프처럼 학습 데이터에 대해서는 오차가 감소하지만 실제 데이터에 대해서는 오차가 증가하는 지점이 존재할 수 있다. 다시 말해 overfitting은 학습데이터에 대해 과하게 학습하여 실제 데이터에 대한 오차가 증가할 경우 발생한다. Underfitting Underfitting 이란 모델이 너무 간단하기 때문에 학습 오류가 줄어들지 않는 것이다. 그렇다면 Overfitting을 완화시키는 방법에는 어떤것들이..