본문 바로가기

Tech82

[PY] line_profiler (@profile) 구현을 하다보면 알고리즘 속도에 대한 고민을 된다. 이때 어떤 부분이 오래 걸리는지를 확인해야 하는데 직관적인 방법에 의한 고민을 할 수도 있지만 코드가 많아지게 되면 이를 찾아내기 쉽지가 않다 그럴 때 도움을 받을 수 있는 것이 프로파일링 (profiling)이다. 프로파일링이란 프로그램의 시간 복잡도, 메모리 정보, 함수 호출 주기, 빈도 등을 분석하는 것이다 @profile은 파이썬에서 제공하는 성능 분석 도구인 line_profiler 모듈에서 제공하는 데코레이터입니다. 이를 이용하여 함수나 메소드의 각 라인에서 소요되는 시간, 메모리 사용량 등의 성능 정보를 확인할 수 있습니다. @profile을 사용하려면 먼저 line_profiler 모듈을 설치해야 합니다. 설치 방법은 다음과 같습니다. p.. 2023. 3. 4.
[Other] 제조 AI 란 OverView2021년 세계경제포럼 WEF에서 향후 5년간 제조 분야에서 가장 큰 변화는  “ AI / 머신러닝 Machine Learning 이 결정할 것이다”라는 중론이 나왔다디지털 경제라는 시대적 상황하에서 국내 또한 스마트 공장의 질적 고도화와 현장 직원들의 업무 효율성 향상을 위해 제조 데이터와 AI 분석의 중요성이 더욱 중요시 되고 있다제조 AI가 부각된 시대적 배경국내 제조 생태계에 IoT 센서가 부착된 스마트 공장의 확산이 제조업 4차 산업혁명 패러다임 변화의 주축이 됨에 따라 제조 데이터와 인공지능 기술의 중요도가 더욱더 증대되고 있다.세계 경제포럼 (WEF)에서 매년 ‘등대공장(Lighthouse factory)’을 전 세계로부터 선정하여 발표한다. 등대공장이란 어두운 밤바다에서 ‘등.. 2023. 2. 16.
[ML] 경량 딥러닝 기술 동향 https://ettrends.etri.re.kr/ettrends/176/0905176005/34-2_40-50.pdf 해당 글은 ETRI에서 발표한 경량 딥러닝 기술 동향의 내용을 정리한 내용 입니다. 경량 딥러닝 기술 동향 경량 딥러닝 기술은 알고리즘 자체를 적은 연산과 효율적인 구조로 설계하여, 기존 모델 대비 효율을 극대화하기 위한 경량 딥러닝 알고리즘 연구와 만들어진 모델의 파라미터들을 줄이는 모델 압축(Model Compression) 등의 기법이 적용된 알고리즘 경량화 기술로 나눌 수 있다. 경량 딥러닝 알고리즘의 정의 경량 알고리즘은 CNN 계열의 모델에서는 주로 학습 시 가장 큰 연산량을 요구하는 합성곱 연산을 줄이기 위한 효율적인 합성곱 필터 기술이 일반화되고 있다. 다양한 신규 계층 .. 2023. 2. 9.
[ML] Semi-Supervised Learning (Active Learning) Active Learning Active Learning은 적은 수의 Labeled Data를 활용하여 Unlabeled Data에 대한 Annotation을 수행, 해당 데이터를 재 학습하는 과정을 통해 모델의 성능을 높이는 방법 중 하나이다 이때, Annotation 할 데이터를 무작위로 추출하지 않고, 적절한 Query 전략을 통해 현 모델 기준 불확실성이 높은 데이터를 우선적으로 Annotator에게 Labeling 해줄 것을 요청하는 것이 Active Learning의 핵심이다 학습 데이터를 확보하는 과정은 데이터를 수집하는 거소가 수집한 데이터에 유의미한 라벨을 붙이는 것으로 구성되어 있다. 일반적으로 유의미한 라벨을 붙이는 것이 데이터를 수집하는 것에 비해 시간과 비용이 많이 든다 그렇기에 .. 2023. 1. 29.
[Airflow] Airflow란? Airflow 소개 Airflow은 워크 플로를 개발하고 모니터링하기 위한 오픈 소스 솔루션이다. Airflow의 주요 기능은 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축할 수 있게 해주며, 최신 기술 환경에서 접하게 되는 서로 다른 기술들을 연결할 수 있는 다양한 빌딩 블록을 제공한다 Airflow는 거미줄의 거미와 같이 데이터 프로세스 과정에서 중요한 역할을 하며 다양한 (분산) 시스템에서 발생하는 작업을 조율한다. 여기서 Airflow는 직접적으로 데이터 처리 작업을 수행하지는 않지만 데이터 처리를 위한 구성 요소를 조정한다 DAG (Directed A cyclic Graph : 방향성 비순환 그래프) 태스크 간의 의존성을 명확하게 확인하는 방법 중 하나는, 데이터 파이프라인을 .. 2023. 1. 12.
[ML] Cross Validation Cross Validation (교차 검증) 모델을 학습시키는 학습 데이터와 이에 대한 예측 성능을 평가하기 위한 별도의 테스트 데이터가 필요하다. 하지만 이 방법은 과적합(Overfitting)에 취약한 약점을 가질 수 있다. 과적합은 모델이 학습 데이터에만 과도하게 최적화되어, 실제 예측을 다른 데이터로 수행할 경우 예측 성능이 과도하게 떨어지는 것을 말한다. 그런데 고정된 학습 데이터와 테스트 데이터로 평가를 하다보면 테스트 데이터에만 최적의 성능을 발휘할 수 있도록 편향되게 모델을 유도하는 경향이 생기게 된다. 결국은 해당 테스트에만 과적합되는 학습 모델이 만들어져 다른 테스트 데이터가 들어올 경우에는 성능이 저하된다. 이러한 문제점을 개선하기 위해 교차 검증을 이용해 더 다양한 학습과 평가를 수.. 2023. 1. 11.
[ML] 차원 축소 (Dimension Reduction) 차원 축소 (Dimension Reduction) 차원 축소는 매우 많은 피처로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것이다. 일반적으로 차원이 증가할소록 데이터 포인트 간의 거리가 기하급수적으로 멀어지게 되고, 희소 (sparse) 한 구조를 가지게 된다. 수백 개 이상의 피처로 구성된 데이터 세트의 경우 상대적으로 적은 차원에서 학습된 모델보다 예측 신뢰도가 떨어진다. 또한 피처가 많을 경우 개별 피처간에 상관 관계가 높을 가능성이 크다. 선형 회귀 같은 선형 모델에서는 입력 변수 간의 상관 관계가 높을 경우 이로 인한 다중 공선성 문제로 모델의 예측 성능이 저하된다. 이렇게 매우 많은 다차원 피처를 차원 축소해 피처 수를 줄이면 더 직관적으로 데이터를 해석.. 2023. 1. 11.
[Paper] GPT (Generative Pre-trained Transformer) GPT (Generative Pre-Training of a Language Model) https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf As of 24 February 2020, Three are 6,020, 081 article in the English Wikipedia containing over 3.5 billion words 즉, labeling된 데이터보다 unlabeling 된 데이터의 수가 훨씬 더 많다는 것을 알 수 있다. 그런데, 이 labeling된 데이터셋보다 훨씬 더 많은 unlabeling된 데이터 셋을 잘 활용하면 더 좋은 supervised laerning에 대해서도 훨 씬 더 좋은 퍼포먼스를 .. 2022. 12. 28.
[Ops] Docker 컨테이너 정리 Docker 컨테이너 라이프 사이클 컨테이너 생성 (docker container create 명령) 이미지로부터 컨테이너를 생성한다. 이미지의 실체는 'docker'에서 서버 기능을 작동시키기 위해 필요한 디렉토리 및 파일들'이다. 구체적으로 Linux의 작동에 필요한 /etc나 /bin 등과 같은 디렉토리 및 파일들이다. docker container create 명령을 실행하면 이미지에 포함될 Linux의 디렉토리와 파일들의 스냅샷을 취한다. 스냅샷이란 스토리지 안에 존재하는 파일과 디렉토리를 특정 타이밍에서 추출한 것을 말한다. docker container create 명령은 컨테이너를 작성하기만 할 뿐 컨테이너를 시작하지는 않는다. 컨테이너 생성 및 시작 (docker container run.. 2022. 12. 20.