일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- AI
- pos tagging
- bagofwords
- MachineCode
- Normaltic
- 해킹 용어
- 노말틱
- c언어
- stopword
- youtubeNormaltic
- C
- kali
- DNS개념
- HEaaN
- lemmatization
- 해킹입문
- 딥러닝
- CProgramming
- bettercap
- CodeTranslation
- 모두의 깃&깃허브
- NLTK
- pynput
- 비트시프트
- 15679
- MITM
- DNS해킹
- NLP
- Private AI
- 동형암호
- Today
- Total
목록분류 전체보기 (15)
일단 테크블로그😊

0. 개요 본 포스팅에서는 Clustering에 대해 알아보고, 대표적 알고리즘인 K-means 알고리즘에 대해 설명한다. 시간이 없다면 증명이나 수식은 넘어가도 무방하나, 개념을 상세하게 풀어 설명했으니 길지만 찬찬히 따라가다 보면 Clustering에 대한 깊은 개념과 중요한 본질을 파악할 수 있을 것이다. 1. Clustering 개념 A. 거리 함수 Clustering(군집화)란, 주어진 데이터를 특성에 따라 일정 군집(Cluster)으로 나누는, 정답값(label)이 주어지지 않는 대표적인 비지도학습 방식이다. 이때, 비슷하거나 가까운 데이터는 같은 군집에 속하게 하기 위해서, Clustering 간에는 "비슷하거나", "가까운" 것에 대한 정량적 정의가 '거리 함수(Distance Fu..

0. 접근 자연어를 처리하는 방법에 대해 조금 더 생각해 보자. 이전 NLTK 포스팅(NLTK를 통한 자연어 처리 기초개념(Tokenization, Stopwords, POS tagging, NER, Stemming, Lemmatization)에서 자연어를 어떤 식으로 가공하는지 까지는 이해하였다. Token 단위로 자연어를 자르고, Stopwords들을 제거하고, Stemming이나 lemmetization을 통하여 단어를 표준화시키기는 하였지만, 이렇게 처리한 자연어는 아직 자연어이다. 즉, 숫자만 알아듣는 컴퓨터에게 이 가공된 자연어를 컴퓨터에 어떻게 변환시켜 이해시킬 것인가? 에 대한 근본적인 해답은 없는 상태이다. [AI/NLP] NLTK를 통한 자연어 처리 기초개념(Tokenization,S..

0. NLTK란? NLTK는 자연어 처리를 위한 대표적인 파이썬 라이브러리이며, 자연어 처리 분야에서 학계와 산업 현장을 가리지 않고 널리 사용되는 인기 있는 툴킷이다. NLTK가 제공하는 대표적인 알고리즘은 다음과 같으며, 본 포스팅에서는 각각의 알고리즘에 대해 알아볼 것이다.TokenizationStopwordsPOS taggingNERStemming, Lemmatization 1. Tokenization (토큰화) 우리가 컴퓨터로 자연어를 처리하기 위해서는, 받은 문장을 일정한 단위로 나누어 분석해야 한다. 이에, 입력받은 자연어를 일정한 Chunk(덩어리)로 잘라서 처리하는 과정을 Tokenization(토큰화)라고 하며, 이 Chunk들을 Token이라고 부른다. 이 Token들은 자연어 ..

머신러닝 공부 시작 때 항상 만나지만, 초보 수준에서는 항상 헷갈리는 개념이 있다. 바로 지도학습과 비지도학습, 강화학습 간의 개념 구별이다. 특히 비전공자인 일반인 분들 중에서 AI에 관심을 가지고자 할 때 가장 큰 장벽으로 작용하기도 하는 부분이기도 하다. 필자도 초보 시절에는 머신러닝이니 딥러닝이니 강화학습이니, 들으면 들을수록 헷갈렸고 멋있는 기술이 최강(?)인 줄 알았다. 본 포스팅을 통해서, 이 글을 보시는 여러분들이 딱 기억해 가야 할 것만을 정리하여, 더 이상 이런 개념의 혼돈이 없었으면 좋겠다. 1. 머신 러닝(Machine Learning)이란? 우선 다른 복잡한 생각은 제쳐두고, 머신러닝부터 집중해 보자. 우리는 컴퓨터가 발명된 이후, 컴퓨터를 통해 여러 문제를 해결하기 시작했다. 그..

0. 링크 - https://www.acmicpc.net/problem/15649' 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 문제 2. 풀이 순열을 이용하여 풀 수 있는 간단한 문제이다. 중복 없이 M개를 고른, 순서가 있는 수열이므로, 순열 개념을 떠올리는 것이 가장 중요하다. 1) Sol 파이썬 내장라이브러리 itertools를 이용하는 방법이다. 다음과 같이 간단하게 순열 집합을 생성하여 출력할 수 있다. 포인트는 해당 모듈을 알고 있을 것! from itertools import permu..

안녕하세요, 이번에는 Private AI에 대해 알아보고자 합니다! 0. Private AI란? 최근 AI 기술이 광범위하게 상용화되면서 많은 분야에서 활용되고 있습니다. 하지만 AI의 핵심인 데이터셋의 수집과 사용에 대한 우려도 이와 비례하여 늘어나고 있습니다. 이용자 입장에서는 자신이 제공한 데이터가 자신도 모르게 학습될 수 있다는 것에 대해 불안감을 느끼고, 개발자 입장에서는 의료 기록이나 금융 거래 내역, 개인정보 등과 같이 민감한 데이터를 윤리적으로 수집하고 학습시키는 데 어려움을 겪고 있습니다. 이러한 문제들에 대한 해결책 중 하나로 떠오르는 것이 바로 동형암호기술을 통하여 데이터셋을 암호화한 뒤 학습시키는 방법입니다. 동형암호기술을 통하여 암호화된 데이터셋을 학습시킬 경우, Raw Data에..

0. 코드의 컴파일 과정을 알아보자 우리는 많은 프로그래밍 언어들을 사용하여 편리하게 컴퓨터에게 처리를 시킵니다. 그러나 컴퓨터는 실제로 우리가 자연어와 유사하게 사용하고 있는 '고급 언어(High-level Programming Language)'를 직접 이해할 수 없습니다. 반드시 그 언어로 작성된 소스코드가 컴퓨터가 이해할 수 있는 '저급 언어(Low-level)'로 변환해 주는 과정이 필요하죠. 이번 포스팅에서는 고급 언어인 C언어 코드가 실행 파일이 되어가는 과정을 살펴보며, 그 과정 속에서 어떻게 소스코드가 컴퓨터가 이해할 수 있는 저급 언어로 바뀌어가는지 찬찬히 살펴보고자 합니다. 1. 과정 C언어의 컴파일 과정은 대표적으로 다음과 같습니다. 우선 프로그래머가, 필요한 부분은 미리 짜여진 h..
이진수의 특정 비트 설정 및 지우기 이번 포스트에서는 C언어를 사용하여 이진수의 특정 비트를 끄고 켜보도록 하겠습니다. 0. 함수 정의 // 1. is_set_bit >> 비트가 1로 설정되어 있는지 확인 int is_bit_set(unsigned char value, int position) { return (value & (1 > 설정되어 있지 않은 비트 켜기 unsigned char set_bit(unsigned char value, int position) { return value | (1 > 설정된 비트 끄기 unsigned char clear_bit(unsigned char value, int position) { return value & ~(1 비트가 1로 설정되어 있는지 확인 if (i..