목록 분류 전체보기 (299)
유전 알고리즘 유튜브에서 우연히 유전 알고리즘으로 자동차 자율 주행을 위한 최적의 조건을 찾는 영상이나 그네를 타기 위해 학습시키는 영상을 보게 되었고, 유전 알고리즘을 공부하고 간단하게 확인해볼 수 있는 자율 주행 자동차 시뮬레이션을 만들어보았다. Generic Algorithm 사건 안에서 더 나은 결과를 갖는 염색체들끼리의 유전 정보 교차하여 세대를 거듭하면, 점점 더 나은 염색체를 얻을 수 있겠다는 생각에서 시작. Chromosome : 염색체, Gene : 유전자, Child : 자손, Fitness : 적합도 Process 유전 알고리즘을 구현하기 위한 순서는 다음과 같다.1. Definite : 학습하고자 하는 정보를 어떤식으로 표현할 것인가.2. Fitness : 어떤 기준으로 유전자의..
Introduction - Teachable machine을 사용해보고, 유튜브로 머신 러닝 영상들을 찾아보다가, 유전 알고리즘으로 자동차 자율 주행을 위한 최적의 조건을 찾는 영상이나 그네를 타기 위해 학습시키는 영상을 보게 되었고, 재밌어보여서 공부하게 되었다. - 유전 알고리즘을 공부하고, 간단하게 자율 주행 자동차를 위한 최적의 조건을 찾아보았다. Generic Algorithm - 사건 안에서 더 나은 결과를 갖는 염색체들끼리의 유전 정보 교차하여 세대를 거듭하면, 점점 더 나은 염색체를 얻을 수 있겠다는 생각에서 시작. - Chromosome : 염색체, Gene : 유전자, Child : 자손, Fitness : 적합도 Process - 유전 알고리즘을 구현하기 위한 순서는 다음과 같았다. ..
https://teachablemachine.withgoogle.com/train 구글에서 런칭한 무료 머신러닝 서비스. 신기함 반, 심심함 반으로 사용해봤는데, 머신러닝이 이렇게 재밌는 거구나 생각했다. 좌측 class 라인에 분류할 이미지 class 별 명칭을 적고, 웹캠이나 직접 사진을 업로드하여 Training하면 끝. Preview에서 마찬가지로 데이터를 넣어 시험해볼 수 있고, Export Model을 통해, javascript 코드나 Model 파일을 추출할 수 도 있다. // More API functions here: // https://github.com/googlecreativelab/teachablemachine-community/tree/master/libraries/image /..
Disk scheduling - 어떤 알고리즘으로 헤드를 움직여야 가장 효율적인 방식으로 디스크 큐의 request를 처리할 수 있을지에 대한 고민. FCFS (first come, first served) - 먼저 온 것부터 처리하면 간편하고, 공정하지만 다음 요청을 무시한 체 헤드를 왔다 갔다 움직여 비효율적이다. SSTF (shortest seek time first) - 현재 헤드의 위치에서 가장 가까운 위치의 요청부터 처리한다. - 큐에 요청이 계속 들어오고, 한 쪽으로 헤드가 편향되면서 starvation이 발생한다. SCAN - 헤드를 디스크 전체를 스캔하는 방식으로 큐의 작업을 처리해간다. - SCAN, C_SCAN, Look Scan, C_look Scan 방식이 있다. 1. SCAN :..
Disk Sector, Disk Cluster, Disk Block - Sector : 자체적으로 주소를 갖고 있는 스토리지 단위이다. 하드디스크의 섹터 크기는 보통 512byte이고, 소프트웨어적으로 접근할 수 있는 가장 작은 단위가 된다. - Cluster : Sector의 집합으로, 파일을 할당할 수 있는 항당 단위이다. 파일이 할당 될 수 있는 가장 작은 디스크 공간이다. - Block : 운영체제가 디스크를 접근하는 기본 단위이다. 즉 1개 이상의 섹터를 갖는다. 블록 단위의 크기가 커지면 한번에 참조하는 양이 많아지므로 속도는 빨라지지만, 낭비되는 메모리가 많아 메모리 활용에서는 떨어진 성능을 보인다. Allocate and Free - Disk에 파일을 할당하고, 해제하는 방식을 결정한다. ..
Thrashing - CPU utilization 과 degree of mulit-programming은 비례할 것지만 실제로는 그렇지 않다. multi-programming 정도가 커지면서 page in-out 빈도가 늘어나고, 비교적 많이 느린 메모리와 보조 메모리를 사용하는 시간동안 cpu의 활용이 줄어들기 때문이다. 이런 페이지 결함이나 그로 인한 과도한 페이징 작업을 thrashing 이라고 한다. - thrashing은 페이지 수에 크게 의존하고, thrashing만을 생각한다면 global 보다는 local replacement가, 더 나아가 한 프로세스 당 페이지 수를 적절하게 할당하는 것이 좋다. Techniques to handle - thrashing을 예방하기 위해 적절한 수를 할당..
Page replacement - 메모리가 가득차면, 기존의 적재된 페이지를 선별하여 backing store에 page out 시키고, 그 빈공간으로 새로운 페이지를 적재한다. - page out 시키는 페이지의 정보 변경 여부를 확인하여 변경되지 않았으면 backing store에 저장하지 않아도 된다. 이를 위해 page table에 dirty bit를 추가하여 페이지 정보 변경 여부를 표시한다. Victim page - page replacement에 의해 page out 되는 페이지를 victim page 라고 한다. victim page를 선택하는 최우선의 조건은 데이터가 변경되지 않은, 즉 dirty bit가 0인 페이지를 선택하는 것이 backing store에 저장을 불필요로 하기 때문에..
Effective Access Time - p를 page fault가 일어날 확률이라고 할 때 effective access time은 아래와 같다. - page fault가 일어났을 경우, 하드디스크를 탐색하는 시간이 cpu의 연산이나 main memory 접근 시간보다 훨씬 크게되므로 Tp가 전체 Te에 미치는 영향이 크다. 즉 Page fault 발생 시 디스크를 읽는 시간을 최소화 하는 것은 효율에 많은 영향을 끼친다. Locality of reference - 지역성은 CPU가 참조하는 영역이 이전에 참조했을 코드 또는 현재 구간에 가까운 구간을 참조할 확율이 높다는 의미이다. 시간 지역성은 한번 읽었던 코드가 반복될 확률이 높음을 의미하고, 공간 지역성은 현재 참조 구간의 주변의 구간을 다음에..