iptables 의 기본문법과 실전예제
·
Operating System/Security
iptables 는 '침입 차단 시스템' 으로서 snort 의 '침입 탐지 시스템' 과 비교된다. snort가 정찰 ,수색조라면 iptables는 섬멸조의 역할을 수행한다. iptables [테이블] [체인] [룰] [타겟] 으로 구성된다. 기본문법 1. Table 형식 -t [테이블] 테이블을 명시하지 않으면 디폴트로 Filter 테이블이 적용된다. 2. Chain iptables -[A | I | D] [체인] -A : append 모드, 해당 체인의 제일 마지막에 룰을 추가 -I : insert 모드, 해당 체인의 첫 행에 룰을 추가한다. -D : delete 모드, 룰을 삭제하는 모드로 "-D 체인 n" 형식으로 지정하면 특정 위치에 있는 룰을 삭제할 수 있다. 3. Rule IP/ICMP/TCP..
점별 상호정보량(PMI, Pointwise Mutual Information)
·
Artificial Intelligence/Basic
RNN을 포함한 여러 자연어 처리 방법중 통계 기반 기법에선 PPMI라는 것이 사용된다. PPMI$^{Positive\,PMI}$를 설명하기 위해서 PMI를 우선적으로 설명한다. PPMI는 PMI에서 발전된 형태로 $Pointwise\,Mutual\,Information$을 나타낸다. 우리는 인공지능을 통해 자연어를 학습시킬 때에 '동시발행 행렬'에 의존한다. 예를 들어 아래와 같은 자연어가 있다고 가정하자 $$ I\,get\,in\,the\,car\,and\,go\,to\,drive. $$ 위에서 $car$라는 단어가 나올 때는 바로 옆에있는 $the$라는 단어와 높은 연관성이 있다고 생각될 것이다. 이 발상이 기본적인 '동시발행 행렬' 기법의 원리이다. 하지만 단순히 인접한 단어만으로 연관성을 판단하..
연쇄법칙(Chain Rule)
·
Artificial Intelligence/Basic
소개 신경망은 학습 데이터를 주면 손실을 출력한다. 이 때, 우리가 얻고 싶은것은 각 매개변수에 대한 '기울기$^{gradient}$' 이다. 바로 여기서 오차역전파법이 등장하고, 이 오차역전파법을 이해하기 위해서 연쇄법칙$^{chain\, rule}$ 을 알아야 한다. 연쇄법칙 자체는 어렵지 않다. 예로, 아래와 같은 함수가 둘 있다고 가정 해 보자. $$ z = g(y) $$ $$ y = f(x) $$ 이를 치환하면 $z = g(f(x))$ 가 되어, 최종 출력 $z$는 두 함수를 조합해서 계산할 수 있다. 이때 이 합성함수의 미분은 아래와 같이 구할 수 있다. $$ {\partial z \over \partial x} = {\partial z \over \partial y} {\partial y \..
윈도우에서 Tensorflow GPU 사용
·
Artificial Intelligence/Preferences
분명 4년전 쯤에는 윈도우에서도 Tensorflow(GPU) 를 잘 사용했던 기억이 있었는데. 최근들어서 다시 인공지능 공부를 하면서 끄적여 보는데 GPU가 인식되질 않는다. 그래서 한 2시간 남짓 뻘짓을 했는데 다른 분들 뻘짓하지 말시라구 포스팅 해 둔다. 윈도우에 Tensorflow-GPU(2.5.0) 설치하기 - 그래픽카드 버전, CUDA 버전 등등 목차 텐서플로우만 설치해서 CPU버전으로 사용하는 것은 매우 쉽습니다. 하지만 gpu연동하는 것은 정말 쉽지 않은 것 같아요. 하나라도 잘못하면 안돌아가는 경우가 다반사입니다. 주의해서 꼭 chancoding.tistory.com 여러 블로그 글들도 뒤져보고... StackOverflow, Reddit 등등 커뮤니티도 여럿 둘러봤지만 해결법을 찾지 못하..
배치정규화
·
Artificial Intelligence/Basic
배치 정규화는 각 층에서의 활성화 값이 적당하게 분포되도록 조정하는 것을 의미한다. 배치 정규화는 학습 시 '미니배치' 단위로 정규화한다. 이 때, 평균이 0, 분산이 1이 되도록 정규화 한다. 수식은 아래와 같다. $ \Large \mu_B \leftarrow { 1 \over m } \sum_{i = 1}^{m}{x_{i}} $ $ \Large \sigma^{2}_{B} \leftarrow {1 \over m} \sum_{i=1}^{m}{(x_{i} - \mu_{B})^2} $ $ \Large \hat x_{i} \leftarrow { x_{i} - \mu_{B} \over \sqrt{\sigma_B^2 + \varepsilon}} $ $B = {x_1, x_2, ..., x_m}$ 는 $m$ 개의 ..
음수 P/E Ratio(PER) 의 의미
·
Miscellaneous
특정 회사의 제무제표를 살펴보다 보면 P/E Ratio 가 음수로 기재된 경우가 간혹 존재한다. 애초에 P/E Ratio 의 계산되는 수식상 음수값은 큰 의미가 없는데도 불구하고 말이다. 그래서 간략히 해당 음수값이 의미하는 바가 무엇인지 정리 해 둔다. * 참고로 P/E Ratio 가 음수라면 당연히 '적자' 기업이므로, P/E 보다는 P/S 지표를 보는편이 더 낫다. 우선적으로 P/E Ratio 의 계산방법은 아래와 같다. $$\huge PER = {StockPrice \over EPS} $$ 즉 EPS가 음수가 되면 StockPrice 의 값이 얼마든지 음수를 띄게 된다. 이를 시각적으로 살펴보기 위해서 그래프를 살펴보자. Y Axis = PER X Axis = EPS * -1 StockPrice ..
FIPS140 과 OpenSSL 3.0
·
Miscellaneous
Github 내에 개인적인 용도로 사용하려고 만들어둔 C++ 라이브러리는 암호화 처리하는데에 있어서 CryptoPP 라이브러리를 사용 중이였다. Crypto++ Library 8.7 | Free C++ Class Library of Cryptographic Schemes hash functions BLAKE2b, BLAKE2s, Keccack (F1600), SHA-1, SHA-2, SHA-3, SHAKE (128/256), SipHash, LSH (128/256), Tiger, RIPEMD (128/160/256/320), SM3, WHIRLPOOL cryptopp.com 사실 뭐 안되는거 없이, 잘 구현된 라이브러리 이다. 그러던중 최근 들어 AES256 을 통해 파일을 암호화 전송하는 기능을 라이브..
[Make] VSCode Makefile Tool 을 통해 Argument 넣기.
·
Tools/Etc
Makefile Tool 확장기능을 이용하면 settings.json 파일이 생성 되는데, 해당 파일에서 MAKE 파일에서 변수로 사용할 인자나, 명령줄 인수에 덧붙일 인자를 추가할 수 있다. [ ex) git --version ] 만약 make 파일에 변수로 사용할 인자를 넣고 싶다면. makefile.configurations 에 아래와 같이 기재하면 된다. "makefile.configurations": [ { "name" : "blahblah..." "makeArgs": [ "CC=gcc -g", "BUILD_OS=UNIX", "LINKOPT=-lpthread", ... ] } ] 명령줄 인수에 덧붙일 인자를 추가하고 싶다면 [ ex) git --version ] "makefile.launchCo..
[ORACLE] V$ 정리
·
Tools/DataBase
중요한 V$ 들에 대해서만 간단히 한국어로 정리한다. 80%는 번역기 돌렸고 좀 심각하다 싶은 20%는 직접 교정하였다. 실제 ORACLE 의 공식 문서는 Database Reference This part describes the dynamic performance views, which are often referred to as V$ views. docs.oracle.com 해당 링크에서 찾아볼 수 있으므로 참고하길 바란다. 여담으로 V$ 테이블 내용은 아래와 같이 살펴볼 수 있다. TUI를 이용해도 되지만 DBeaver, SQLDeveloper 를 이용하면 편리하다. HeidiSQL 은 아쉽게도 오라클을 지원하지 않는다. 1. V$SESSION V$SESSION은 각 현재 세션에 대한 세션 정보를..
[C++] 리스트 inverting 체인연산
·
Programming/C++
#include typedef struct listNode *listPtr;typedef struct listNode{ char data; listPtr link;}listNode;listPtr invert(listPtr lead){ listPtr middle, tail; middle = NULL; // 여기서 쓰이는 lead, middle, tail 은 임시로 거쳐가는 변수임. while(lead) { tail = middle; // tail 은 middle 을 취함. middle = lead; // middle 은 lead 를 취함. lead = lead->link; // lead는 l..