AI공부 14

프로젝트를 위한 협업: Github

Shell이란운영체제의 커널과 사용자를 이어주는 소프트웨어Shell Commandls (list segments) : 현재 디렉토리의 파일 및 디렉토리 목록 표시ls -l: 파일 및 디렉토리에 대한 자세한 정보를 표시ls -a: 숨겨진 파일 및 디렉토리까지 표시cd (change directory) : 디렉토리 이동cd .. : 상위 디렉토리로 이동cd / : 루트 디렉토리로 이동cd ~ : 홈 디렉토리로 이동cd - : 이전 디렉토리로 이동cd Documents : Documents 폴더로 이동mkdir (make directory) : 디렉토리 생성mkdir [옵션] [디렉토리명]mkdir -p : 중간에 없는 디렉토리까지 한 번에 생성mkdir dev : dev 디렉토리 생성pwd (print wo..

공부 2024.12.16

버전관리 - Git, Github 이론

버전관리란?한마디로 파일의 타임머신 파일의 변화를 기록 (변경점 관리)복구, 특정 시점의 파일을 가져온다수정된 내용을 비교 가능하다추적이 가능하다 Git의 버전관리 개념- 워킹 디렉토리 (작업 디렉토리)- 스테이징 영역: 단순한 파일을 지칭, 커밋할 파일의 정보 저장(인덱스)- Git 디렉토리: 프로젝트의 메타 정보, 객체 데이터베이스 폴더 -> 작업디렉토리 -> 스테이징영역 -> Git디렉토리-지역저장소 https://github.com/ GitHub · Build and ship software on a single, collaborative platformJoin the world's most widely adopted, AI-powered developer platform where million..

공부 2024.12.12

알고리즘

알고리즘(algorithm)이란?특정 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것.알고리즘은 입력, 출력, 명확성, 유한성, 효율성의 조건을 만족해야한다.자연어, 의사코드(pseudo-code), 순서도, 프로그래밍언어 등으로 표현공간복잡도와 시간복잡도를 고려해 알고리즘을 짜야 함. "efficiency"  Sorting algorithm정렬 알고리즘은 주어진 데이터를 정해진 순서대로 재배열하는 알고리즘이다. (ascending, descending)데이터간의 비교가 가능해야 한다  버블정렬 (Bubble Sort)인접한 두 원소를 비교하면서 큰 값을 뒤로 보내며 정렬이 이루어짐 (오름차순 기준)시간복잡도: O(N^2) - 효과적이지 않다

공부/AI 2024.12.11

CS 과제

1. Python List method의 시간복잡도기능설명시간복잡도a.append(value)마지막에 요소 추가O(1)a.count(value)리스트에 있는 value의 개수 반환O(n)a.remove(value)리스트에서 가장 먼저 등장하는 value 삭제O(n)a.extend(b)리스트 a에 리스트 b를 연장O(k)a.reverse()리스트 a의 요소들의 순서를 거꾸로 바꿔줌O(n)  2. CircularQueue 구현해보기import numpy as np# circular queue, 원형큐class CircularQueue: def __init__(self, size): self.buffer = np.zeros(size, dtype=int) self.max_size ..

공부/AI 2024.12.07

자료구조 Data Structure

자료구조데이터를 효율적으로 저장하고 관리하며 처리하기 위한 방법적절한 자료구조를 선택하면 프로그램의 성능을 크게 향상시킬 수 있다 ADT(추상 자료형, Abstract Data Type)데이터와 그 데이터에 대한 연산을 추상적으로 정의한 것 예를들어 Stack 이라는 ADT는 데이터를 쌓고(push) 빼는(pop) 동작을 할 수 있다내부적으로 배열을 사용하든, 리스트를 사용하든 상관없다. 사용자는 '쌓고 빼는' 기능만 알면 된다  효율적인 자료구조인지 평가하는 두가지 요소시간복잡도 (Time complexity) - 얼마나 빨라?공간복잡도 (Space complexity) - 메모리를 얼마나 적게 사용했어? 복잡도를 표현하는 방법Big Oh (O): 알고리즘이 절대로 특정 시간 이상 걸리지 않는다는 것을..

공부/AI 2024.12.05

float 타입의 저장 방식, 부동소수점, IEEE 754

부호 : 양수 0, 음수 1지수 : 2^(지수부 - 1) + 정규화 후 지수가수 : 정규화 후 가수   정규화1 + 0.1234 x 10^2 의 형식으로 만든다  32비트 컴퓨터에서 12.375 가 어떻게 저장되는지 계산해보자 12를 이진수로 표현하면 11000.375를 이진수로 표현하면 0.011더하면 1100.011 x 2^0정규화하면 1.100011 x 2^3부호는 양수니까 0지수는 2^(8 - 1) + 3 = 127 + 3 = 130 = 10000010가수는 1.100011 에서 1을 빼고 100011결과는 0 10000010 10001100000000000000000 32비트, -118.625118(10) = 1110110(2)0.625(10) = 0.101(2)1110110.101 x 2^01..

공부/AI 2024.12.04

컴퓨터 공학 (CSE) - Computational Thinking

CES는 컴퓨터를 이용하여 주어진 문제를 계산 가능하게 하는 것Computational Thinking : 컴퓨터가 이해할 수 있게 문제를 정의하는 것Problem Solving : 컴퓨터가 효율적으로 계산할 수 있게 하는 것  Computational ThinkingDecomposition (분해) : 전체 문제를 작은 여러가지 문제로 나누는 과정Pattern Recognition (패턴인식) : 주어진 문제에서 반복적으로 나타나는 패턴을 찾는 과정Abstraction (추상화) : 문제에서 해결해야할 주요한 정보를 수치화(또는 계산 가능하게) 하는 과정Algorithmic Thinking (알고리즘) : 문제 해결 방식을 step-by-step으로 만드는 과정  예제1) 도서관에서 책 추천 시스템 구..

공부/AI 2024.12.04

통계학 Statistics 공부 for AI - 2

노름(Norm)노름(Norm) 이란 벡터의 크기 또는 길이를 측정하는 방법입니다. 벡터가 원점에서 얼마나 떨어져 있는지 나타내는 값이라고 생각할 수 있습니다. 노름의 종류노름에는 여러 가지 종류가 있으며, 가장 일반적으로 사용되는 노름은 다음과 같습니다.L1 노름: 각 성분의 절댓값의 합입니다. 맨해튼 거리라고도 합니다.L2 노름: 각 성분의 제곱의 합의 제곱근입니다. 유클리드 거리라고도 합니다.L∞ 노름: 각 성분의 절댓값 중 가장 큰 값입니다. 최대 노름이라고도 합니다. ||x||p: 벡터 x의 Lp 노름 n: 벡터 x의 차원 (성분의 개수) xi: 벡터 x의 i번째 성분 p: 노름의 차수 (1, 2, ∞ 등) L1 노름 수식   L2 노름  L∞ 노름  노름에 따른 기하학적 의미 유사도유사도(Sim..

공부/AI 2024.12.01

통계학 Statistics 공부 for AI - 1

합의 법칙두 사건 𝑨와 𝑩가 상호 배타적(동시에 발생할 수 없는 경우)일 때, 사건 𝑨가 일어나는 경우의 수가 m이고, 사건 𝑩가 일어나는 경우의 수가 n이면, 사건 𝑨또는 사건 𝑩가 일어나는 경우의 수의 총합은 m + n 주사위를 한 번 던질 때 짝수가 나오거나 홀수가 나오는 경우의 수짝수 3가지 + 홀수 3가지 = 6가지 곱의 법칙두 가지 이상의 사건이 동시에 일어나는 경우의 수 꽃병 3개, 장미 6송이가 있을 때, 꽃병에 장미를 꽃기 위해 꽃병 한 개와 장미 한 송이를 동시에 택하는 경우의 수3 x 6 = 18 옷장에 셔츠 3벌, 바지 2벌, 신발 2켤레가 있다. 셔츠, 바지, 신발을 하나씩 골라 입을 때, 가능한 옷차림의 경우의 수는?3 x 2 x 2 = 12가지 순열 (Permutat..

공부/AI 2024.11.30

파이썬 컨테이너 Container 딕셔너리 dict

딕셔너리 dict { : } 딕셔너리 생성 (Create) 1. 중괄호 {} 사용# 빈 딕셔너리 생성empty_dict = {}print(empty_dict)# 키-값 쌍을 직접 지정하여 딕셔너리 생성person = { "name": "John Doe", "age": 30, "city": "New York"}print(person)  2. dict() 생성자 사용 키워드 인자를 사용하여 키-값 쌍을 지정# 키워드 인자를 사용하여 딕셔너리 생성person = dict(name="John Doe", age=30, city="New York")print(person) 리스트나 튜플의 리스트를 사용하여 딕셔너리를 생성# 리스트의 리스트를 사용하여 딕셔너리 생성data = [["name", "Jo..

공부/AI 2024.11.25
반응형