C 배열의 모든 것이었으면 좋겠다 ( 문자열, gets, puts, 2차원 배열, Call by value, Call by reference )
배열 쉽게 말해서 변수를 한 번에 왕창 만들어주는 것이다. 근데 번호와 순서가 있는 변수를 선언해준다는 점이 기존 변수와 다른 점이다. 선언된 배열은 형이 같은 변수를 만드는데 int, float, char, static... 다 된다. 10개의 변수를 int s1, int s2... 선언하는 것보다 int s[10] 이렇게 하나로 선언해주는 게 더 효율적이다. 그래서 배열이 필요하다. 각각 모두 고유의 이름이 있어야 하는데 번호로 구분한다. 1차원 배열의 선언에는 여러 방법이 있다. // 선언1 int num[4]; // 선언2 int num[4] = {0, 1, 2, 3}; // 선언3 int num[] = {0, 1, 2, 3}; 선언 1은 그냥 선언만 해준다. 즉 공간만 할당해 준다는 의미다. 선..
2022. 6. 18.
딥러닝 RNN의 모든 것이었으면 좋겠다 ( Bidirectional RNN, Deep RNN, Seq2seq, Attention Mechanism )
RNN ( Recurrent Neural Network ) RNN이란 번역하면 순환 신경망이다. 순차적으로 뭔가를 처리하고자 만든 모델이다. 번역기나 음성인식, 주식 시세, 문장, 유전자 배열, 심전도 신호 등, 여러 곳에서 많이 사용된다. 순차적이고 동적이며 가변의 길이를 가지고 상호 의존성을 가진다. 동적이며 가변적이기 때문에 기존에 알던 CNN, DNN으로는 한계가 있다. CNN과 DNN은 이미지나 입력이 고정된 크기로 정해지기 때문이다. 그래서 나온 것이 RNN이다. 간단히 말해, 연속적이며 흐름이 있는 뭔가를 분석하기 위해 필요한 모델이다. 진짜 초간단하게 말하면 과거의 입력에 영향을 받는 모델이다. 기본 꼴은 아래와 같다. 출력과 은닉층에서도 정보를 주고받는다. 즉, 은닉층이 순환 에지를 가진..
2022. 6. 9.