danbibibi
article thumbnail
BERT (Bidirectional Encoder Representations from Transformers)
AI 2023. 5. 9. 10:16

BERT 2018년, 구글이 공개한 사전 훈련된 모델 트랜스포머를 이용하여 구현 (트랜스포머의 인코더를 쌓아올린 구조) 위키피디아(25억 단어)와 BooksCorpus(8억 단어) 데이터로 사전 훈련 (Unsupervised Learning) 모든 자연어 처리 분야에서 좋은 성능을 내는 범용 Language Model BERT등장 이전에는 데이터의 전처리 임베딩을 Word2Vec, GloVe, Fasttext 방식을 많이 사용 BERT가 높은 성능을 얻을 수 있었던 이유 레이블이 없는 방대한 데이터로 사전 훈련된 모델을 가지고, 레이블이 있는 다른 작업(Task)에서 추가 훈련과 함께 하이퍼파라미터를 재조정 * Fine-tuning : 다른 작업에 대해서 파라미터 재조정을 위한 추가 훈련 과정 = 추가적..

article thumbnail
Transformer: Attention Is All You Need
AI 2023. 5. 9. 03:36

기존 seq2seq 모델의 한계 입력 시퀀스를 하나의 벡터로 압축하는 과정에서 입력 시퀀스 정보가 일부 손실 *이를 보완하기 위해 Attention 이용했었음 Transformer 기존의 RNN 기반의 모델과 달리, Self-Attention을 사용하여 입력 시퀀스의 전체적인 의미를 파악하고 처리하는 방식으로 동작 * RNN을 모두 Attention으로 대체 Encoder Input Embedding 입력 문장의 각 단어를 고정 길이의 벡터로 변환 Positional Encoding RNN이은 단어의 위치에 따라 단어를 순차적으로 입력받아서 처리하기 떄문에 단어의 위치 정보를 가질 수 있었음 트랜스포머는 단어 입력을 순차적으로 받는 방식이 아니므로 단어의 위치 정보를 다른 방식으로 알려줄 필요가 있음 단..

article thumbnail
Optimizer
AI 2023. 5. 9. 01:33

Optimizer 학습은 cost function의 최소값을 찾는 것을 목표로 한다. 여기서 최소값을 찾아가는 것을 최적화 = Optimization / 이를 수행하는 알고리즘을 최적화 알고리즘 = Optimizer 이라고 한다. * 즉, 모델의 매개변수를 조정하여 cost function을 최소화하고 모델의 예측 성능을 향상시키기 위해 사용하는 것이 Optimizer이다!! Cost function : 모델의 예측값과 실제값의 차이를 나타내는 함수 (데이터셋에 대한 예측값과 실제값의 차이를 계산) Loss function : 한 개의 데이터 샘플에 대해 예측한 값과 실제값의 차이를 나타내는 함수

article thumbnail
Gradient Descent
AI 2023. 5. 8. 23:29

Gradient Descent 모델의 손실 함수를 최소화하기 위해 사용되는 최적화 알고리즘 중 한 종류 Batch Gradient Descent 전체 학습 데이터셋을 사용하여 모델 업데이트 , batch_szie = n 안정적, 병렬처리가 가능하여 속도는 빠르지만, 업데이트 속도는 느림 (한 epoch 당 1번 update) 전체 데이터셋을 처리하는 동안 계산이 느리고 메모리를 많이 사용 cost에 대한 gradient Stochastic Gradient Descent 학습 데이터셋의 각 샘플에 대해 모델 업데이트 , batch_szie = 1 업데이트 속도는 빠르지만, 불안정 (한 epoch 당 n 번 update) loss에 대한 gradient Mini-Batch Gradient Descent 미니..

article thumbnail
C, C++, JAVA, Python
언어/기타 2023. 5. 8. 20:30

C 절차지향적 언어 컴파일러 언어 (기계어로 변환된 후 실행 ) Low Level 언어 ( 어셈블리어 수준으로 하드웨어 제어 가능 ) 시스템 자원을 개발자가 직접 제어할 수 있음 시스템과 하드웨어 제어, 운영 체제 개발 등의 영역에서 주로 사용 C++ 컴파일러 언어 객체지향 언어 엄격한 타입 체크 개임 개발에 많이 사용 객체 지향 프로그래밍은 코드의 재사용성을 높이고 유지보수를 용이하게 하는 등 생산성을 높이는 특징을 가지고 있음 JAVA 객체지향 언어 Garbage Collection 지원 인터프리터와 컴파일러를 모두 사용 웹 서비스 개발, 안드로이드 앱 개발에 주로 사용 Javac(Java Compiler)를 이용해 소스코드를 .class 파일로 컴파일하고, 이후 JVM의 인터프리터에서 바이트코드를 ..

article thumbnail
[Vue 기초 3] Event, Binding
WEB/front-end 2023. 5. 5. 15:55

v-on DOM 이벤트를 듣고 해당 이벤트가 발생되면, 지정된 메소드를 호출 클릭 위 버튼을 클릭한 횟수는 {{counter}} 번 입니다. v-on:click = @click method Event Handler 이벤트 발생시 처리 로직을 v-on에 모두 넣기는 힘듦 v-on에서는 이벤트 발생시 처리해야 하는 method의 이름을 받아 처리 Greet Inline Event Handler 메소드 이름을 직접 바인딩 하는 대신 인라인 JavaScript 구문에 메소드를 사용할 수도 있음 원본 DOM 이벤트에 엑세스 해야 하는 경우 특별한 $event 변수를 사용해 메소드에 전달할 수도 있음 Greet Greet Event Modifier (이벤트 수식어) method는 DOM의 이벤트를 처리하는 것 보다..

article thumbnail
[Vue 기초 2] Vue Instance 속성 (method, filter, computed, watch)
WEB/front-end 2023. 5. 4. 23:47

Vue method Vue Instance는 생성과 관련된 data 및 method의 정의 가능 method 안에서 data를 this.데이터이름 으로 접근 가능 data : {{message}} method kor : {{helloKor()}} method eng : {{helloEng()}} Vue filter 화면에 표시되는 텍스트의 형식을 쉽게 변환해주는 기능 filter를 이용하여 표현식에 새로운 결과 형식을 적용 중괄호 보간법 {{}} 또는 v-bind 속성에서 사용 가능 여러 개 사용 가능 {{msg | capitalize}} 천 단위마다 ',' 찍기 / 전화번호에 '- ' 넣기 금액 : 전화번호 : {{ msg1 | price }} {{ msg2 | mobile }} Vue computed..

article thumbnail
[Vue 기초 1] Vue instance, directive
WEB/front-end 2023. 5. 4. 14:52

Vue.js 사용자 인터페이스를 만들기 위한 동적 JavaScript 프레임워크 컨트롤러 대신 뷰 모델을 가지는 MVVM(Model-View-ViewModel) 패턴을 기반으로 디자인 됨 MVVM Pattern Model : 순수 자바스크립트 객체 View : 웹페이지의 DOM ViewModel : Vue의 역할 * 기존에는 자바스크립트로 view에 해당하는 DOM에 접근하거나 수정하기 위해 jQuery와 같은 library 이용 * Vue는 view와 Model을 연결하고 자동으로 바인딩하므로 양방향 통신을 가능하게 함 Vue Instance el Vue가 적용될 요소 지정 CSS Selector or HTML Element data Vue에서 사용되는 정보 저장 객체 또는 함수 형태 template ..

article thumbnail
Dropout
AI 2023. 5. 2. 22:17

Dropout 딥러닝에서 overfitting을 방지하는 regularization 기법 중 하나 무작위로 선택한 일부 뉴런들을 무시 ( 해당 뉴런들의 출력을 0으로 만듦 ) 모델이 다양한 입력에 대해 다양한 방식으로 반응하도록 만들어주어 일반화 능력을 높이는 데 도움을 줄 수 있음 모델을 여러 개를 만들지는 않지만, 훈련 과정에서 앙상블과 비슷한 효과를 냄 서로 다른 학습데이터를 통해 모델을 학습시키거나 모델이 서로 다른 구조를 가지면 학습 성능을 개선할 수 있음 그러나 하나의 네트워크를 훈련시키는 것도 어려운데 여러개의 네트워크를 훈련시키는 것은 매우 어려운 일임 또한, 여러개의 네트워크를 훈련시켰더라도 사용시에 연산 시간이 소비되어 속도가 느려지는 문제가 발생할 수 있음 Dropout은 이 두 문제..

article thumbnail
Pre-training, Transfer Learning, Fine-tuning
AI 2023. 4. 30. 18:19

Pre-training ( 사전 학습 ) 방대한 데이터를 사용하여 모델을 사전 학습 시키는 것 Pre-trained 모델을 비슷한 task에 대해 새로운 모델을 만들 때 사용하면 학습 시간을 상당히 줄일 수 있음 CV, NLP 등 다양한 분야에서 사용되지만, 주로 NLP에서 단어의 의미나 문장의 구조 등을 이해하기 위해 사용 Unsupervised learning, Supervised learning 모두 가능 (주로 unsupervised learning 방식으로 이루어짐) Transfer Learning ( 전이 학습 ) Pre-trained model을 사용하여 새로운 문제를 해결하는 기술 비교적 적은 양의 데이터로도 빠르게 정확한 모델을 만들 수 있으며, 컴퓨팅 리소스와 시간을 절약할 수 있음 F..

article thumbnail
가상 메모리(Virtual Memory)
CS/운영체제 2023. 4. 30. 05:13

가상 메모리 등장 배경 가상 메모리 프로그램이 실행될 때 물리적 메모리(RAM)보다 큰 메모리 공간을 사용하도록 하는 기술 (물리적 메모리 크기의 한계를 극복) 기존에는 프로세스가 실행되는 코드 전체를 메모리에 로드해야 했고, 메모리 용량보다 더 큰 프로그램은 실행할 수 없었음 하지만 실제로는 코드의 일부에서만 대부분의 시간을 사용하고, 프로세스는 특정 순간에는 항상 작은 양의 주소 공간을 사용하기 때문에 이러한 방식은 매우 비효율적 가상 메모리(Virtual Memory)는 이러한 물리적 메모리 크기의 한계를 극복하기 위해 나온 기술 프로세스를 실행할 때 실행에 필요한 일부만 메모리에 로드하고 나머지는 디스크에 둠 (대게 page로 관리) 프로세스 전체가 물리적 메모리에 있는 것 '처럼' 수행, 즉 물..

article thumbnail
JSON (JavaScript Object Notation)
WEB/front-end 2023. 4. 27. 09:10

JSON (JavaScript Object Notation) JSON data : name-value 형태의 쌍으로 collection 타입 data는 , 로 나열 객체는 {} 로 표현 배열은 [] 로 표현 XML 사용시 파싱과 같은 복잡한 문제를 해결 XML에 비해 상대적으로 구문이 짧음 단, JSON은 전달받은 데이터의 무결성을 직접 검증 (XML은 스키마 이용) 텍스트 기반이므로 어떠한 프로그래밍언어와 플랫폼에서도 사용 가능 JSON 자료형 수 (Number) 문자열 String) : 끈따옴표로 구분 참/거짓 (Boolean) 배열 (Array) 객체 (Object) null (비어 있는 값) { "name": "신짱구", "age": 7, "married": false, "family": { "f..

article thumbnail
Event Handler
WEB/front-end 2023. 4. 27. 09:09

Event 웹 페이지에서 여러 종류의 상호작용이 있을 때 마다 이벤트가 발생 JavaScript를 사용해 DOM에서 발생하는 이벤트를 감지하여 대응하는 여러 작업 수행 가능 이벤트는 일반적으로 함수와 연결이 되고,이벤트 발생 전에는 실행되지 않다가 이벤트가 발생할 경우 실행 Event Handler (Listener) 이벤트 발생시 실행해야 하는 함수 Event 종류 마우스 이벤트 이벤트 설명 onclick 마우스로 Element를 클릭 했을 때 발생 ondblclick 마우스로 Element를 더블 클릭 했을 때 발생 onmouseup Element에 마우스 버튼을 올렸을 때 발생 onmousedown Element에서 마우스 버튼을 눌렀을 때 발생 onmouseover 마우스를 움직여서 Element..

article thumbnail
Swagger
WEB/기타 2023. 4. 27. 09:02

Swagger 간단한 설정으로 프로젝트의 API 목록을 웹에서 확인 및 테스트 할 수 있게 해주는 Library Swagger를 사용하면 Controller에 정의되어 있는 모든 URL을 바로 확인할 수 있음 API 추가 또는 변경 시 문서에 적용해야하는 불편함 해결 💡 FrontEnd 개발자는 화면과 로직에 집중하고, BackEnd 개발자가 만든 문서 API를 보며 데이터 처리! Swagger 적용 1. dependency 추가, 설정 pom.xml io.springfox springfox-boot-starter 3.0.0 io.springfox springfox-swagger2 3.0.0 io.springfox springfox-swagger-ui 3.0.0 root-context.xml 2. Swa..

article thumbnail
Ajax (Asynchronous JavaScript and XML) 정리
WEB/front-end 2023. 4. 26. 23:28

Ajax (Asynchronous JavaScript and XML) 웹에서 화면을 갱신하지 않고 데이터를 서버로부터 가져와 처리하는 방법 (화면의 일부만 갱신 가능) 화면 갱신이 없으므로 사용자는 편리하지만, 동적으로 DOM을 구성해야 하므로 구현이 복잡 언어나 프레임워크가 아닌 구현하는 방식을 의미 CORS error가 발생할 수 있음 💡 일반 요청에 대한 응답 - data를 입력 후 event 발생 - Ajax를 적용하지 않은 요청은 서버에서 data를 이용하여 logic 처리 - logic 처리에 대한 결과에 따라 응답 page를 생성하고 client에 전송 (화면 전환 발생) 💡 Ajax 요청에 대한 응답 - data를 입력 후 event 발생 - Ajax를 적용하면 event 발생시 서버에서 ..