전체 글 228

[Information Retrieval] Index Compression - Heaps' law, Zipf's law, Dictionary compression, front coding, Postings compression, gamma code

1. Compression정보검색에서의 압축은 다음과 같은 의미를 가진다.dictionary의 크기를 줄이는 것은 메인 메모리에 많이 올릴 수 있다는 것이다.posting file을 줄이는 것은 disk space를 줄이고, disk를 읽는 시간을 줄이는 것이다.Lossy손실이 있는 압축이다.소문자로 바꾸거나 stemming, stop word 제거하는것 등이다.Lossless손실이 없는 압축이다.zip 등이다.딕셔너리를 디스크에 올려놓는게 굉장히 빠르고 좋은데 너무 크다. 따라서 압축을 해야 한다. 압축을 하는 경우 압축을 푸는 시간이 들긴 하지만 디스크에 접근하는 것 보다 훨씬 빠르다.2. Term statistics통계를 다시 보자.number를 제외하거나 case folding, stopword ..

[Information Retrieval] Index Construction - BSBI, SPIMI, Distributed indexing (Map Reduce), Dynamic Indexing(Logarithmic merge)

1. IntroductionHardware basics하드디스크보다 메모리가 훨씬 빠르다.그러나 메모리의 양이 매우 적기에 양을 나누어서 메모리에 넣고, external sort를 수행해서 inverted index를 만드는 방식으로 작동하게 된다.디스크에서 정보를 찾는 seek time은 굉장히 느리다. 참고로 seek는 트랙을 찾는 것이고 섹션을 찾는 rotate는 비교적 빠르다.모든 operation을 디스크를 거치지 않고 메모리에서 하면 굉장히 빠르다.한 번 트랙을 찾으면 최대한 많이 읽어오는 것이 유리하고 그래서 block 단위로 저장하는 것이 좋다.Fault tolerance는 비싸다.RCV1 collection정보 검색을 테스트하기 위해 원래 셰익스피어의 희곡을 사용했는데 양이 너무 적었다...

[백준] C++ 5904: Moo 게임 - 굉장히 큰 수에 대한 재귀

https://www.acmicpc.net/problem/5904N이 10^9 개로 N번째 글자를 구한다는 것이 몇 번째 수열을 구해야 하는지 감도 안잡히고 굉장히 큰 수여서 long long으로도 담지 못한다.즉, 재귀적으로 길이가 n 이상인 수열을 구해서 n번째 문자를  찾으려 한다면 절대 풀 수 없다.조금 다르게 생각해서 n번째 글자만 알면 되므로 어떤 수열에 대해 n번째 글자를 알아내는 과정을 재귀로 생각하여야 한다. 사실 다 풀고 나서야 이렇게 명료하게 말할 수 있지만 풀 때는 다음과 같은 과정을 거쳤다.수열의 길이가 n 이상인 moo 수열 구하기 -> 구현을 다 하고 보니 n이 얼마 이상 커지면 오류k번째 moo 수열 S(k)에 대해 S(k-1)의 길이를 알면 S(k)를 알 수 있음. 그럼 길..

[DSBA] CS231n - 7. Convolutional Neural Networks

https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&index=3스탠포드 대학교의 유명한 컴퓨터 비전 강의를 보고 정리한 글입니다.https://www.youtube.com/playlist?list=PLetSlH8YjIfXMONyPC1t3uuDlc1Mc5F1ACS231n 강의와 서울대학교 DSBA 연구실의 강의를 참고하여 공부한 부분을 정리하였습니다.이번 강의를 들으면서 처음 AI 공부를 시작했고, 그만큼 틀린 부분 해석이 모호한 부분이 있을 수 있습니다.1. Overview왜 이미지 네트워크를 Conv Neural Network로 다뤄야 할까?기존의 신경망을 이미지에 적용하면 왜 안되는지 살펴보자.heig..

AI/CS231n 2024.11.10

[CS231n] Training Neural Networks Part 2 - SGD, Momentum, Adam, Dropout

https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&index=3스탠포드 대학교의 유명한 컴퓨터 비전 강의를 보고 정리한 글입니다.https://www.youtube.com/playlist?list=PLetSlH8YjIfXMONyPC1t3uuDlc1Mc5F1ACS231n 강의와 서울대학교 DSBA 연구실의 강의를 참고하여 공부한 부분을 정리하였습니다.이번 강의를 들으면서 처음 AI 공부를 시작했고, 그만큼 틀린 부분 해석이 모호한 부분이 있을 수 있습니다. 6. Training Neural Networks Part 21. Mini-batch SGD딥러닝 모델을 학습할 때 사용되는 최적화 알고리즘은 크게 세 ..

카테고리 없음 2024.10.15

[인텔리제이] 레전드 단축키 모음

🖇️ 리팩토링Shift + T : 테스트 클래스 만들기Ctrl + Alt + v : 리턴값으로 빼기Shift + Ctrl + Alt + T : 리팩토링, 메서드 추출 등Ctrl + Alt + T : 선택한 코드 특정 문구로 감싸기Ctrl + Alt + N : inline variableCtrl + Alt + L : 리포맷, 디렉터리에도 사용 가능🚀 파일 및 라인 이동Shift + Shift : search everywhereCtrl + D : 라인 복사Ctrl + Y : 라인 삭제Ctrl + Shift 위/아래 : 라인 이동Shift + Enter : 커서 위치 상관 없이 한줄 밑에서 시작하기Ctrl + N : 클래스 검색Ctrl + E : 최근에 연 파일 검색🛠️ 코드 작성 및 편의Shift + ..

[CS231n] Training Neural Networks Part 1

https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&index=3스탠포드 대학교의 유명한 컴퓨터 비전 강의를 보고 정리한 글입니다.https://www.youtube.com/playlist?list=PLetSlH8YjIfXMONyPC1t3uuDlc1Mc5F1ACS231n 강의와 서울대학교 DSBA 연구실의 강의를 참고하여 공부한 부분을 정리하였습니다.이번 강의를 들으면서 처음 AI 공부를 시작했고, 그만큼 틀린 부분 해석이 모호한 부분이 있을 수 있습니다.5. Training Neural Networks Part 11. Transfer learningImageNet data는 대략 1000개 클래스에 대해 ..

AI/CS231n 2024.10.09

[ServerProgramming] Make

1. makemake는 여러 개의 소스코드 그룹을 관리하는 툴이다.make를 강력하게 추천하는 이유는 incldue 로 다른 로컬 헤더파일을 포함하거나, 복잡한 구조를 쉽게 관리할 수 있다.특히 여러 개의 소스코드 중 딱 하나만 수정한 경우 수정된 파일만 새로 컴파일하여 굉장히 효율적으로 소드코드 그룹을 관리할 수 있다. make는 Target, dependency, command로 이루어져 있다. File Foramt은 다음과 같다.target: dependency[tab] commandmake 를 입력하면 Makefile을 실행하고, target을 생성한다. target 을 빌드할 때 필요한 파일들이 dependency에 적혀있고, target을 생성하기 위해 실행할 명령어가 command에 적히게 ..

[ServerProgramming] Vi Editor, GCC

1. Vi EditorVi Editor는 두 모드로 나뉜다.Command mode : vi를 실행하면 명령 모드로 들어와진다.Input mode : i를 입력해서 Input mode로 진입할 수 있다. 인풋 모드에서 text를 작성할 수 있다. esc 키를 눌러서 명령 모드로 돌아갈 수 있다.How to exit from vi (command mode):q : 종료:q! : 저장하지 않고 종료:wq : 저장하고 종료Moving Aroundh : leftl : rightj : downk : upEntering Texta : insert 모드로 가는데 커서 뒤에서부터 입력i : insert 모드로 가는데 커서 앞에서부터 입력o : insert 모드로 가는데 현재 커서 아래 줄에 새로운 줄 생성해서 입력Edi..