전체 글
-
인공지능 시작인공지능 2020. 10. 13. 11:11
요즘 핫한 머신러닝, 딥러닝은 인공지능의 한 분야이고, 오늘은 딥러닝이 아닌 인공지능에 대한 글을 써보려합니다. AI란 무엇인가? Think(생각) vs Act(행동) Human(인간성) vs Rationality(이성) 이 둘의 조합으로 인공지능을 정의할 수 있습니다. Think Human Think Rationality Act Human Act Rationality Acting humanly Acting humanly 는 사람처럼 행동하는 인공지능을 말합니다. 이때 기계의 평가 기준에 기계를 어떻게 만들었는지는 평가하지않는 것이 keypoint 입니다. 얼마나 인간처럼 행동하는지에 대해 평가하는 테스트 중 가장 유명한 것이 Turing test 입니다. 이 기계는 다음과 같은 능력들을 가져야 합니다...
-
top 명령어 정리C,C++ & Linux 2020. 9. 9. 17:47
17:45:27 : 현재 시간 13:12 : 시스템 부팅 시간 (13시간 12분 전) user : 접속 중인 유저 수 load average : 현재 시스템이 얼마나 일을 하는지 나타냄(부하율) 왼쪽부터 1분, 5분, 15분 간의 평균 실행/대기 중인 프로세스의 수 Tasks : 프로세스의 개수 running : 동작 중인 프로세스의 수 sleeping : 잠자기모드인 프로세스의 수 stopped : 정지 모드인 프로세스의 수 zombie : 좀비 모드인 프로세스의 수 %Cpu(s) us, user : unniced 유저프로세스에 사용한 CPU 사용률 sy, system : 커널 프로세스에 사용 한 CPU 사용률 ni, nice : niced 유저 프로세스에 사용한 CPU 사용률 id, idle : id..
-
AI 필체인식(Mnist) Back propagation 구현인공지능 2020. 6. 7. 15:10
2020/06/06 - [AI] - AI Back propagation(오차역전파) AI Back propagation(오차역전파) 2020/06/03 - [AI] - 딥러닝 MNIST 필기체 인식 딥러닝 MNIST 필기체 인식 Mnist 는 딥러닝 공부를 할 때 기초적이면서도 흥미로운 연습 문제에요 Training Data set(csv) 과 Test Data set(csv) 파일 링크입니다... bubble-dev.tistory.com 이 전 글에서 오차역전파 공식을 유도하는 법에 대해서 알아봤습니다. 아래 코드의 수식들은 이 전글에서 유도된 공식으로 궁금하신 분들은 보고 오시면 좋을것같네요 코드 import numpy as np # 데이터 로딩 test_data = np.loadtxt('mnist_..
-
AI Back propagation(오차역전파)인공지능 2020. 6. 6. 00:28
2020/06/03 - [AI] - 딥러닝 MNIST 필기체 인식 딥러닝 MNIST 필기체 인식 Mnist 는 딥러닝 공부를 할 때 기초적이면서도 흥미로운 연습 문제에요 Training Data set(csv) 과 Test Data set(csv) 파일 링크입니다. Training Data set 에는 6만개의 이미지 데이터가 들어있습니다. 하나의.. bubble-dev.tistory.com 이전글에서 수치미분을 통해 MNIST 필기체 인식을 해봤는데 제 PC에서는 거의 20시간 정도 학습을 돌린거같아요.. 수치미분방식의 가장 치명적인 단점이 속도가 느리다는 점입니다. 이런 단점을 보완하기 위해서 Back Propagtion 기법을 배워볼게요 수치미분 방식은 입력값에서 delta_x 로 약간의 변형을 주..
-
C/C++ seteuid(2), setegid(2)C,C++ & Linux 2020. 6. 5. 04:31
함수 기능 현재 프로세스의 Effective User ID 혹은 Effective Group ID 를 수정하는 함수입니다. 함수 원형 #include #include int seteuid(uid_t euid); int setegid(gid_t egid); 매개변수 설정하고자 하는 euid, egid 반환값 성공 시 0 리턴 에러 시 -1 리턴하고 errno 설정 예제 #include #include #include #include #include #include int main(int argc, char *argv[]) { int fd, state; // euid를 id -u 명령어를 통해 자신의 uid 를 알아내고 그 번호를 등록 state = seteuid(501); if (state < 0) { f..
-
C/C++ setreuid(2), setregid(2)C,C++ & Linux 2020. 6. 5. 04:15
함수 기능 현재 프로세스의 Real User ID, Effective User ID 혹은 Real Group ID, Effective Group ID 를 수정하는 함수입니다. 함수 원형 #include #include int setreuid(uid_t ruid, uid_t euid); int setregid(gid_t rgid, gid_t egid); 매개변수 ruid Real User ID euid Effective User ID rgid Real Group ID egid Effective Group ID 반환값 성공 시 0 에러 시 -1 리턴하고 errno 설정 리눅스시스템프로그래밍 저자 : 홍지만 https://book.naver.com/bookdb/book_detail.nhn?bid=1462367..
-
숫자구슬 (boj 2613)알고리즘 2020. 6. 5. 01:46
숫자구슬 문제는 Parametric search 기법을 활용해서 풀 수 있어요. 용돈관리 문제랑 상당히 유사하고 코드도 거의 똑같습니다만.. 약간의 함정이 숨어있어요. M개의 그룹으로 나누고 각 그룹에 속한 원소의 수를 출력해줘야하는데 입력으로 8 5 1000 1 1 1 1 1 1 1 같이 극단적으로 큰 값을 주게 되면, 용돈관리 코드로는 1000 1 7 과 같이 그룹이 5개가 아니라 2개만 나오게 돼요 그래서 충분히 적은 수의 그룹을 만들 수 있더라도 M개에 미치지 못한다면 적절히 쪼개주는 작업이 필요하답니다. 쪼개는건 사실 쉬워요. 원소의 갯수가 2 이상인 그룹을 찾아서 1개씩 뽑아주면 됩니다. 뽑아주는 과정은 그룹의 갯수가 M이 될때까지 반복하는거구요. 코드 #include #include #inc..
-
용돈관리 (boj 6236)알고리즘 2020. 6. 5. 01:10
용돈관리 문제는 Parametric search 문제에요 Parametric search 는 Binary search 의 아이디어를 가져온 기법입니다. 지금 문제가 최소한의 K원을 찾는 문제니까 최대값은 N * 10000(일일 최대 사용금액), 최소값은 입력받은 일일금액 중 가장 큰 금액일거에요. 예를 들면 N이 100000, M이 1, 그리고 모든 일일금액이 10000원이라면 100000 * 10000 원을 한 번만 뽑아야하겠죠? 이는 100억이라서 int 의 범위를 넘어섭니다. 이를 먼저 주의해야하구요 최소값이 일일금액 중 가장 큰 금액이여야함은 자명하죠? 만약 K보다 큰 일일금액이 있다면 돈이 부족해서 은행에 돈을 넣었다가 다시 뽑아도 돈이 모자르니까요! Max = 100만 Min = 일일금액 중 ..