런타임(Runtime) visual code에서 브라우저 실행 단축키: Alt+B Go runtime은 메모리 관리, 가비지 수집, 동시성을 포함하여 Go 프로그림의 실행을 관리하는 역할을 합니다. 이 문서에서는 Go runtime을 자세히 살펴보고 아키텍초, 특성과 장점을 살펴봅니다. Go Runtime Architecture Go runtime은 모듈식이고 유연하게 설계되었으며 개발자가 특정 요구사항에 따라 동작을 사용자 정의할 수 있는 계층적 아키텍쳐를 갖추고 있습니다. 런타임은 스케줄러(schedualer), 가비지 수집기(garbage collector), 메모리 할당자(memory alllocator) 및 스택관리(stack management)를 포함한 어려 핵심 구성 요소로 구성됩니다. Schedualer Go 런타임의 핵심은 고루틴의 실행을 관리하는 스케줄러입니다. 고루틴은 효율적인 동시성을 가능하게 하는 가벼운 스레드입니다. 스케줄러는 사용 가능한 스레드에 고루틴을 분산하고, 스레드 로컬 스토리지를 관리하고, I/O 작업을 조정하는 역할을 합니다. thread(스레드): 프로그램 내에서 실행되는 흐름의 단위로 동시에 여러 작업이나 프로그램을 실행하는 것입니다. 즉, 코드를 실행할 수 있는 각 단위를 스레드라고 합니다. 고루틴(goroutine): Go 언어로 동시에 실행되는 모든 활동을 의미합니다. 고루틴을 만드는 비용을 스레드에 비해 매우 적기 떄문에 경량 스레드라고 합니다. 모든 프로그램은 적어도 하나의 main() 함수라는 고루틴을 포함하고 고루틴은 항상 백그라운드에서 작동합니다. 메인함수가 종료되면 모든 고루틴은 종료됩니다. 그러므로 고루틴보다 main이 먼저 종료되는 것을 방지해야 합니다. Go 스케줄러는 매우 효율적이고 확장 가능하도록 설계되어 많은 수의 동시 고루틴을 손쉽게 처리할 수 있습니다. 스레드 간에 부하를 분산하여 경합을 최소화하고 성능을 개선하는 작업 훔치기 알고리즘을 사용합니다...
통계는 수치 데이터의 수집, 분석, 해석, 표현 및 구성을 다루는 수학의 한 분야입니다. 통계는 주로 두 가지 하위 분기로 분류됩니다.
기술 통계: 연속 데이터 유형(예: 연령)에 대한 평균, 표준 편차와 같은 데이터를 요약하는 데 사용되는 반면 빈도 및 백분율은 범주형 데이터(예: 성별)에 유용합니다.
추론 통계: 많은 경우 전체 데이터(통계 방법론에서 모집단이라고도 함)의 수집이 불가능하므로 데이터 포인트의 하위 집합(샘플이라고도 함)이 수집되고 전체 모집단에 대한 결론이 도출됩니다. 추론 통계로 알려져 있습니다. 추론은 가설 테스트, 수치적 특성 추정, 데이터 내 관계의 상관 관계 등을 사용하여 도출됩니다.
통계 모델링은 데이터에 대한 통계를 적용하여 변수의 중요성을 분석하여 숨겨진 숨겨진 관계를 찾는 것입니다.
Machine Learning
머신 러닝은 과거 경험을 활용하여 미래의 결정을 내리기 위해 학습하고 지식을 사용하는 컴퓨터 과학의 한 분야입니다. 기계 학습은 컴퓨터 과학, 엔지니어링 및 통계의 교차점에 있습니다. 기계 학습의 목표는 감지 가능한 패턴을 일반화하거나 주어진 예제에서 알 수 없는 규칙을 만드는 것입니다. 기계 학습 환경의 개요는 다음과 같습니다. 기계 학습은 크게 세 가지 범주로 분류되지만 상황에 따라 이러한 범주를 결합하여 특정 응용 프로그램에 대해 원하는 결과를 얻을 수 있습니다. 지도 학습: 이것은 기계가 다른 변수와 대상 변수 간의 관계를 학습하도록 가르치는 것입니다. 교사가 학생들에게 자신의 수행에 대한 피드백을 제공하는 방식입니다. 지도 학습의 주요 부분은 다음과 같습니다. 분류 문제, 회귀 문제 비지도 학습: 비지도 학습에서 알고리즘은 감독 없이 또는 제공되는 대상 변수 없이 스스로 학습합니다. 주어진 데이터에서 숨겨진 패턴과 관계를 찾는 문제입니다. 비지도 학습의 범주는 다음과 같습니다. 차원 축소, 클러스터링 강화 학습: 이를 통해 기계 또는 에이전트가 환경의 피드백을 기반으로 행동을 학습할 수 있습니다. 강화 학습에서 에이전트는 감독 없이 일련의 결정적인 행동을 취하고 결국에는 +1 또는 -1의 보상이 주어집니다. 최종 보수/보상을 기반으로 에이전트는 경로를 재평가합니다. 강화 학습 문제는 자주 사용되는 기계 학습 알고리즘보다 인공 지능 방법론에 더 가깝습니다. 어떤 경우에는 처음에는 차원을 줄이기 위해 비지도 학습을 수행한 다음 변수 수가 매우 많을 때 지도 학습을 수행합니다. 마찬가지로 일부 인공 지능 응용 프로그램에서는 강화 학습과 결합된 지도 학습을 문제 해결에 사용할 수 있습니다. 예를 들어 자율 주행 자동차는 초기에 지도 학습을 사용하여 이미지가 일부 숫자 형식으로 변환되고 운전 동작(왼쪽, 앞으로, 오른쪽 및 뒤로)과 결합됩니다. 통계 모델링과 머신 러닝 방법론 사이에는 고유한 유사점이 있지만 많은 실무자에게 명확하지 않은 경우가 있습니다. 다음 표에서는 두 스트림이 유사한 방식과 이들 간의 차이점을 보여주기 위해 차이점을 간결하게 설명합니다.| Statistical modeling | Machine learning |
|---|---|
| 변수 간의 관계를 수학적으로 공식화 | 규칙 기반 프로그래밍에 의존하지 않고 데이터에서 학습할 수 있는 알고리즘 이용 |
| 모델 형태 가정 필요(예: 선형, 다항식 등) | 복잡한 패턴을 자동으로 학습할 수 알고리듬에 의존하므로 기본 형태를 가정할 필요가 없음 |
| 85%의 정확도와 90%의 신뢰도로 출력을 예측 | 85%의 정확도로 출력을 예측 |
| p-값 등과 같은 매개변수의 다양한 진단이 수행 | 계적 진단 유의성 테스트를 수행하지 않음 |
| 데이터는 교육 및 테스트 데이터를 생성하기 위해 분할(7:3), 훈련 데이터를 기반으로 개발된 모델은 테스트 데이터에서 테스트 | 데이터는 교육, 검증 및 테스트 데이터(5:2.5:2.5)로 분할, 훈련 및 하이퍼파라미터에서 개발된 모델은 검증 데이터에 맞춰 조정되고 최종적으로 테스트 데이터에 대해 평가 |
| 진단은 전체 정확도와 개별 변수 수준 모두에서 수행되므로 통계 모델은 훈련 데이터라는 단일 데이터 세트에서 개발할 수 있습니다. | 변수에 대한 진단이 부족하기 때문에 머신 러닝 알고리즘은 2점 검증을 보장하기 위해 훈련 및 검증 데이터라는 두 개의 데이터 세트에 대해 훈련되어야 합니다. |
| 대부분 연구목적으로 활용 | production 환경에서 구현하기에 매우 적합 |
| 통계 및 수학 분야에서 다룸 | 컴퓨터 과학 분야에서 다룸 |
기계 학습 모델 개발 및 배포 단계
기계 학습 모델의 개발 및 배포에는 기계 학습 모델을 개발, 검증 및 구현하기 위해 통계 모델링 프로세스와 거의 유사한 일련의 단계가 포함됩니다. 단계는 다음과 같습니다.- 데이터 수집: 머신 러닝은 정형 데이터와 비정형 데이터(음성, 이미지 및 텍스트).
- 데이터 준비 및 누락/이상치 처리: 데이터는 선택한 기계 학습 알고리즘에 따라 형식이 지정됩니다. 또한 결측값 및 이상값을 평균/중앙값 등으로 대체하여 결측값 처리를 수행해야 합니다.
- 데이터 분석 및 특성(feature) 엔지니어링: 숨겨진 패턴 및 변수 간의 관계 등을 찾기 위해 데이터를 분석해야 합니다. 적절한 비즈니스 지식을 갖춘 올바른 특성 엔지니어링은 문제의 70%를 해결합니다. 또한 실제로 데이터 과학자의 시간 중 70%는 특성 엔지니어링 작업에 사용됩니다.
- 훈련 및 검증 데이터에 대한 알고리즘 훈련: 특성 엔지니어링 이후, 데이터는 통계 모델링에서 2개(훈련 및 테스트)로 분리하는 것과는 달리 3개 그룹(훈련, 검증 및 테스트 데이터)으로 나뉩니다. 머신 러닝은 훈련 데이터에 적용되고 모델의 하이퍼파라미터는 과적합을 피하기 위해 검증 데이터를 기반으로 조정됩니다.
- 테스트 데이터에 대한 알고리즘 테스트: 모델이 학습 및 검증 데이터에 대해 충분히 좋은 성능을 보여주면 테스트 데이터에 적용한 결과와 비교하여 확인됩니다. 성능이 여전히 충분하다면 다음 단계로 진행할 수 있습니다.
- 알고리즘 배포: 훈련된 기계 학습 알고리즘은 결과를 분류하기 위해 라이브 스트리밍 데이터에 배포됩니다. 전자 상거래 웹사이트에서 구현한 추천 시스템을 예로 들 수 있습니다.
댓글
댓글 쓰기