컴퓨터의 근본 원리가 된 finite state machine 개념 익히기
1. definition
특정 input을 받으면 현재 상태에서 특정 상태로 변화하는 일종의 machine
컴퓨터 작동의 기본 원리
동그라미 2개 된 곳은 terminal state
input을 받으면 S1에서 시작하고 a를 주면 S2로 간다는 뜻이 아니라 S1에서 a를 받으면 S2로 가는것
S2에서 b를 받으면 S1으로 가는 것이고 c를 받으면 S4(terminal state)로 가는것
2. example - theory of computation
모든 computing 연산은 finite state machine로 나타낼 수 있다.
input state에서 algorithm, time, space 등을 받으면 output state로 변화하는 computing 연산
3. example - database
database에서 새로 create하여 database를 만든다거나 새로운 database를 읽는다거나 새로운 내용을 update한다거나 내용을 지운다거나하면 새로운 database 상태로 변화
현재 database에서 create, read, update, delete 등 각종 operation을 받으면 새로운 database로 상태 변화
4. example - security
현재 message에서 code rule에 의해 새로운 message로 상태변화하고 inverse rule에 의해 원래 message로 복원되는 과정
code rule이 외부에 알려지지 않은 encoding을 encrypt라 하고 이 경우 복원 과정을 decrypt라고 부름
당연하지만 rule을 모르니 decoding(decrypt)을 아무나 할 수 없게 됨
encrypt도 compression처럼 encoding의 subset 개념이다.
현재 message에서 code rule을 받아 encrypt를 하면 새로운 message로 상태변화
5. example - network
client가 server에 request를 하면 server는 client의 request에 따라 상태를 업데이트
server는 HTTP 같은 약속에 의해 update가 되었다는 것을 client에게 알린다는 의미로 response
response를 받은 client는 다시 request하여 위 과정을 반복함
client가 request를 하여 server의 상태 변화를 일으키며 server는 response로 업데이트 되었다는 것을 client에게 알림
6. example - operating system
hardware에 의해 정보를 받은 operating system이 application 상태를 변화
application 상태 변화 정보가 operating system에 전달되면 operating system이 hardware를 update하는 과정을 반복함
7. example - machine learning
model의 underfit 상태에서 train을 진행하면 overfit 상태로 가고 overfit 상태에서 regularization을 통해 underfit 상태로 변화시킨다.
underfit과 overfit의 중간쯤에 존재하는 optimal한 상태를 얻고자 하는 것이 machine learning
machine learning의 training도 사실 finite state machine의 일종
8. example - coding
(프로그래밍) 언어가 어떻게 조합되느냐에 따라 program이 될 수 있고 machine이 될 수 있고 program이나 machine의 output이 될 수 있고
program이 compile을 통해 machine이 될 수도 있고
coding하는 과정 자체가 finite state machine가 될 수 있다.
neural network가 data input을 받아 task를 수행하여 output을 내는 과정도 하나의 encoding 과정이며(decoding은 불가능한..??) finite state machine이다.
neural network는 그 자체로 거의 항상 input data의 dimension을 compression하여 output data로 상태 변화 시킨다.
network나 data나 벡터 공간 위의 점들의 집합이고 점들의 집합이 어떻게 조합되느냐에 따라 weight의 모임인 network가 되고 혹은 input data가 되고
neural network는 input data의 차원을 압축시켜 output data로 만든다
network(=set of weight)나 data나 벡터 공간 위 점들의 조합이다.
9. example - entropy
정보가 없는 무질서한 high entropy 상태에서 정보가 들어와 정보가 반영된 상태인 low entropy로 변화하는 것도 finite state machine
이 entropy 변화를 구현한 것이 machine learning model
entropy의 변화도 finite state machine의 일종
'딥러닝 > light weight modeling' 카테고리의 다른 글
컴퓨터 과학에서 말하는 compression의 개념 (0) | 2022.11.06 |
---|---|
경량화 모델하면 가장 먼저 떠오르는 MobileNetV1의 핵심 아이디어 (0) | 2022.11.05 |
머신러닝 관점에서 information transmission (0) | 2022.11.03 |
딥러닝에서 parameter search하는 gradient descent와 기하학적 의미 (0) | 2022.11.02 |
머신러닝 관점에서 entropy 개념 알아보기 (0) | 2022.11.01 |