본문 바로가기

3-2 학기18

[인공지능] Ch17 MDPs II 지난 포스트에서 공부한 MDP에 이어 작성한다. The Bellman EquationsOptimal한 policy를 찾는 방법은 위와 같다고 한다.- Step1: 올바른 첫 번째 행동하기- Step2: 최적화 상태 유지하기 그럼 어떻게 being optimal할 수 있는지 알아보자.상태 가치 함수 V(s)상태 s에서 시작하여 최적의 정책을 따를 때 얻을 수 있는 기대 보상의 총합이다.T(s, a, s')은 상태 s에서 행동 a를 통해 s'으로 전이될 확률을 의미한다.R(s, a, s')은 상태 전이에 따른 보상이다.V(s')은 다음 상태의 가치이다.Q 값 함수 Q(s, a)상태 s에서 행동 a를 취했을 때 이후 최적의 정책을 따를 경우 얻을 수 있는 기대 보상의 총합이다.Policy EvaluationP.. 2024. 12. 4.
[데이터베이스] Ch11 RDB design 11.1 Good Schema and Bad Schema나쁜 테이블의 기준은 무엇일까?나쁜 테이블은 갱신 이상(update anomaly), 삭제 이상(delete anomaly), 입력 이상(insert anomaly)를 가지고 있다.우선 위의 mybadtable1 테이블을 보자. chairman, building, budget 속성 값이 deptName 속성에 의존하고 있는 것을 볼 수 있다.즉, deptName이 변경되면 나머지 속성들도 같이 바뀌게 되는 것이다. 예를 들어서 설명을 해보면CS학과의 경우, Databases 과목 및 Java 과목이 삭제되는 경우에는 삭제 이상이 발생하지 않는다.그러나, 남아있는 마지막 과목인 Data Structure가 삭제되면 CS학과에 대한 정보도 영원히 삭제되.. 2024. 11. 27.
[데이터베이스] Ch10 ER model 10.1 Entity and Relationship- 개체(entity): 구별이 가능한 객체를 의미* 개체는 ER 데이터 모델에서 사용한 용어이고, 객체는 객체지향 패러다임에서 사용한 용어이다.위 그림은 개체 집합(entity set)을 나타낸다. Student 개체 집합에 속성이 동일한 다수의 Student 개체가 있고, Course 개체 집합에도 다수의 Course 개체가 있는 것이다.만약 이 둘이 관계가 있다면?위는 관계성 집합 takes의 예제이다.Student 개체 집합에 속한 개체가 Course 개체 집합에 속한 개체와 연관이 있음을 나타낼 수 있다. 개체가 , , 과 연관이 있음을 알 . 수 있고, 여기서 의미는 "수강하다"이다. 관계성 집합은 속성을 가질 수 있다.예를 들어, 위의 예제에.. 2024. 11. 27.
[데이터베이스] Ch6 RDB functionalities 6.1 Views 뷰(VIew)란, 특정 사용자로부터 특정 속성을 숨기는 기능이다.Create view myProfessor asselect pID, name, deptNamefrom professor;위처럼 Create view문장으로 뷰를 만들 수 있다. - 뷰는 일반 테이블과 다르게 터플을 실제 뷰 내부에 저장하지 않는다.- 뷰 테이블이 터플을 실제로 가지지 않기에 가상관계라고도 한다.(데이터베이스 시스템은 뷰에 대한 정의를 저장하고 있으며 이를 이용하여 뷰에 대한 질의를 작성하는 것)- 그렇기에 가장 최신의 데이터를 가지고 있을 수밖에 없다. ✅뷰의 확장 예시를 알아보자.Create view myFaculty as select pID, name, deptName from professor .. 2024. 11. 27.
[인공지능] Ch16 MDPs MDPMDP에 대해 알알보기 위해 우선 미로 탐색 인공지능의 예시를 먼저 살펴보자.왼쪽 그림은 우리가 지금까지 봐온 Deterministic하게 움직이고 있는 것이다.agent가 정해준 방향으로만 움직이고 있는 것을 확인할 수 있다. 그러나 현실에선 다른 방향으로도 agent가 움직이는 것이 자연스럽다.이렇게 확률적으로 움직이는 걸 오른쪽 그림에서 나오는 Stochastic이라고 한다.Stochastic은 "확률적" 또는 "비결정적"이라는 의미이다. 미로에서 길을 지날 때 여태까지 지나온 길에 대해서는 생각하지 않아도 된다. 이렇게 오로지 현재의 상태에만 기반해서 행동하는 것을 Markov Transition Model이라고 한다. MDP는 다음과 같이 구성되어 있다.상태(State, S): 환경의 가능.. 2024. 11. 27.
[인공지능] Ch14 Adversarial Search Adcersarial Search적대적 탐색이란, 두 개 이상의 agent가 서로 적대적인 관계를 가졌을 때의 탐색 방법을 의미한다.여러 agent가 서로의 이득을 취하기 위해 움직이는 상황을 '게임'이라고 하며 해당 강의에서는 여러 게임들을 소개한다. Deterministric GamesDeterministric 게임을 formalize 하는 방법은 다양한데 그 중 아래와 같은 방법이 있다.하나씩 설명해보자면, States (𝑆)는 게임의 모든 가능한 상태를 나타낸다.게임은 특정 상태 𝑠0에서 시작한다. 이후의 상태는 플레이어의 행동과 상태 전이 함수에 의해 결정된다. Players (𝑃)는 플레이어 집합을 나타낸다.일반적으로 플레이어는 턴을 번갈아가며 진행하며, 보통 𝑃 = {1, 2} 또는 .. 2024. 11. 27.
[인공지능] Ch13 Informed Search Search Heuristics휴리스틱이란, 목표에 얼마나 가까운 상태인지 추정하는 함수를 의미한다.ex) 맨해튼 거리, 경로를 위한 유클리드 거리팩맨을 예시로 들자면,팩맨의 위치에서 목표까지의 거리는 위의 빨간색 선과 달리 벽을 뚫지 않고 구불하게 이동해야 할 것이다. 그렇다면 추정값은 유클리드 거리를 이용해서 구할 수 있다. 그게 바로 빨간색 선이다.목표까지의 유클리드 커리를 반환하는 함수가 휴리스틱인 것이다. Greedy Searchgreedy search는 목표와 가까워 보이는 노드부터 확장해 나가는 방법이다. Optimal하냐고 물어본다면 그렇지는 않다. 당장 현재 노드로부터 가까워 보이는 노드들을 선택해 나가기 때문에 최적해가 될 수 없는 건 어찌보면 당연하다. 여기서 휴리스틱은 각 상태에 대.. 2024. 11. 27.
[인공지능] Ch12 Search Agent인공지능에서 agent란 독자적으로 행동하는 하나하나의 주체를 의미한다.decision-maker == AI model어떤 조치를 취할 것인지 결정하는 구성 요소1) Reflex Agentsagent의 종류의 첫 번째로 Reflex Agent가 있다.이 agent는 현재 인식(및 기억력)에 따라 작업을 선택한다.위 그림을 보자. 로봇(agent)은 사과만을 보고 사과에 닿기 위해 점프를 하지만 그 이후에 떨어질 것은 예측하지 못하고 있다.즉, 향후 행동의 결과를 고려하지 않는다. 2) Planning Agents두 번째 종류로는 Planning Agents가 있다.이 agent는 "만약에"를 물으며 행동의 (가설화된)결과에 따라 결정한다.위 로봇은 처음에 보았던 로봇과는 반대로 도구를 이용하고 .. 2024. 11. 27.
[운영체제] xv6 구조 및 동작 원리 운영체제 설계 과제를 구현하던 중, xv6 구조 및 동작 원리에 대해 자세하게 공부해보고 싶어 글을 남긴다.먼저 기본 개념 먼저 집고 가자. xv6xv6는 멀티프로세서 x86 및 RISC-V 시스템을 위해 개발한 교육용 운영체제이다.xv6를 가상 환경에서 실행 시키기 위해서는 리눅스에서 사용하는 가상머신인 QEMU를 사용하면 된다.- QEMU를 시작하는 명령어는 make qemu이며, - QEMU를 종료하는 단축키는 (맥북에서) control + A, X 이다. xv6 레포지토리를 복제할 수 있는 깃허브 주소는 아래와 같다.https://github.com/mit-pdos/xv6-public GitHub - mit-pdos/xv6-public: xv6 OSxv6 OS. Contribute to mit-p.. 2024. 10. 29.
[데이터베이스] Ch5 SQL II 5-1 Aggregate Functions✅집계함수데이터베이스 시스템은 다섯 개의 집계함수를 지원한다.avg: average valuemin: minimum valuemax: maximum valuesum: sum of valuescount: number of values✅Group by 전체 테이블을 특정 속성 값으로 터플을 분류하고, 나누어진 각 그룹에 대하여 집계 함수를 적용하고자 하는 요구가 있으며, 이러한 역할을 하는 것이 "group by"절이다. group by절을 사용할 때 주의해야 할 사항이 있다. 바로, group by절에 나온 속성과 집계함수만이 select 절에 나올 수 있다.아래의 예시를 통해 자세히 알아보자./* 틀린 예시 */Select deptName, pID, avg(sal.. 2024. 10. 15.
[운영체제] Memory API ✅malloc()#include void *malloc(size_t size);void *calloc(size_t nobj, size_t size);void *realloc(void *ptr, size_t newsize); 위의 함수들은 메모리 할당을 위해 사용되는 라이브러리 함수이다. malloc()과 calloc()은 지정된 크기의 바이트 메모리를 할당받는다.malloc()의 경우, 할당된 메모리의 초기 값은 정의되지 않고 calloc()의 경우, 할당된 메모리를 모두 0으로 초기화한다. 또한 두 함수는 가용 리스트를 통해 첫 번째 블록에 접근한다.포인터를 따라 이동하면서 정해진 알고리즘에 의해 리턴할 블록을 찾으며, 적절히 포인터를 조정하여 가용 메모리 리스트에서 이 블록을 가져와 그 블록을 사용자.. 2024. 10. 14.
[운영체제] The Abstration : Address Space 운영체제 역사1. Early Sytems위 그림은 초기 운영체제의 모습이다.이때를 "선사시대"라고 부르기도 한다.(운영체제에서 말하는 선사시대란 가상 메모리를 사용하기 전의 시대를 의미한다.)물리 메모리에 하나의 실행 중인 프로그램이 존재하였다.특별히 가상화에 대한 개념은 없었다. 2. Multiprogramming and Time Sharing프로세스가 여러 개 올라가는 다중 프로그래밍 프로세스에서 제일 중요한 첫 번째 목표는 "보호"이다.본인이 가지고 있는 메모리 영역을 남들이 침범하지 않도록 하는 것이다. 동작 방법에 대해서 설명하자면, 여러 프로세스는 실행 준비 상태인 것이다.이때 OS는 프로세스를 CPU에게 전환하면서 실행한다. 3. 주소 공간 Address Space주소 공간이란, 운영체제가 .. 2024. 10. 13.