전체 글 34

GAN을 이용한 Synthetic medical data를 이용한 class imbalance의 해소가 classification model의 정확도에 미치는 영향 알아보기

Data증강 첫번째 시도: PGGAN PGGAN이 Cardiomegaly data에 대해서는 잘 학습 되다가 Edema data부터 제대로 된 이미지를 생성하지 못하는 사실 확인 코드의 문제인지 규명을 위해 논문의 코드를 보고 이해한 후, main.py를 작성하여 증강을 시도함 memory부족으로 학습이 불가능 한 것을 확인 데이터의 문제인지 규명을 위해 다시 Cardiomegaly데이터셋을 사용해서 증강. 다시 정상적으로 데이터가 증강되는 것을 확인 결론: 기존의 PGGAN코드의 경우dataset의 알수없는 문제로 인해 많은 데이터셋에서 증강이 불가능 한 사실을 확인하게 되었음. 이를 해결하고자 논문의 PGGAN 코드를 사용하는데 까지는 성공하였으나 컴퓨터의 메모리 부족으로 이를 실행시키는것을 불가능했..

[MySQL] 파이썬을 활용, 데이터베이스에 CSV데이터 저장하기

1. 사용할 라이브러리 임포트 import pandas as pd import pymysql import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns sns.set() 2. 데이터베이스 연동 conn = pymysql.connect(host='호스트주소', user = '사용자이름', password='wktfd76251!', db = '데이터베이스이름',charset = 'utf8') curs = conn.cursor(pymysql.cursors.DictCursor) 3. 테이블 생성 sql = '''CREATE TABLE 테이블이름( col_vriable1 int(15) not null comment '표기될열이름1' prima..

Back-end 2021.05.30

인공지능을 이용하여 의료 소프트웨어를 만드는 기업들

IBM 왓슨(기사 스크랩) “실패한 사업”…IBM, 왓슨 사업팀 구조조정 왓슨의 꽃길은 딱 거기까지였던 것 같다. 중앙보훈병원을 끝으로 2018년에는 왓슨에게 눈길을 준 병원이 한 곳도 없었고, 심지어 여기저기서 왓슨의 ‘추락’을 점치는 뉴스들이 쏟아졌다. 왓슨을 만든 IBM에서부터 균열이 시작됐다. 지난해 5월 IBM은 왓슨을 실패한 사업으로 규정하고 사업팀을 구조조정했다. 이후 약 700억원을 투입해 종양학 전문 지침(Oncology Expert Advisor)을 개발 중이던 MD앤더슨암센터와도 이별했다. 자세한 내용은 알려지지 않았지만, 왓슨의 데이터에 불만을 가진 MD앤더슨암센터가 먼저 계약을 깬 것으로 알려졌다. 전문가들은 IBM이 왓슨을 시장에 내놓았을 때 성급했다고 지적한다. 근거기반의 의학..

기업탐방 2021.05.27

[cs231n assignment1] Implementing Two-Layer Neural Network

neural_net.py에 코드를 채워 넣고 two_layer_net.ipynb를 실행 한 뒤에, 그 결과를 확인하고, 하이퍼 파라미터를 조정하는 과제이다. 이를 위해 skeleton code와 dataset을 다운로드 한 뒤에 jupyter notebook에서 아래와 같이 환경 설정을 완료한 뒤에 과제를 수행했다. 전체적으로 이미지의 화질이 좋지 않은 부분은 양해 부탁한다. 좀더 자세히 보고싶다면 첨부된 파일을 참조하기 바란다. 전체 코드 파일은 아래에 첨부하며, 과제 중에서 직접 채워 넣어야 하는 부분에 대한 설명을 이번 포스팅에서 작성하도록 한다. neural_net.py 4개의 함수의 빈 부분의 코드를 채워 넣어 완성한다. (1) def __init__(self, input_size, hidden..

[CS231N] Lecture4: Backpropagation and Neural Networks (1) 정리

역전파 알고리즘이란? 다층 퍼셉트론(MLP)에 사용하는 학습 알고리즘이다. 입력이 주어지면 순방향으로 계산하여 최종 출력값을 계산한 후에 실제 출력과 우리가 원하는 출력 간의 오차를 계산한다. 이 오차를 역방향으로 전파하면서 오차를 줄이는 방향으로 가중치를 변경하는 것이 역전파(Back-Propagation)알고리즘이다. 가중치를 역방향으로 업데이트하는 이유는 계산의 복잡성을 줄이기 위한 것이다. 이때 사용되는 공식이 Chain-Rule이다. Chain Rule(합성함수의 미분) 공식 손실 함수의 식은 아래와 같다. 이때 가중치를 변경하기 위한 식은 아래와 같다. 여기서 손실함수를 가중치로 미분한 값 앞에 있는 변수는 학습률로, 하이퍼 파라미터이다. 보통 0.01정도를 사용한다. 가중치를 변경하기 위해 ..

[인공지능프로젝트]응급환자를 위한 즉석 X-ray진단 서비스: 배경지식 학습과 모델 뼈대 구축

목차 (1) 사전 학습을 위한 cs231n강의 (2) 학습에 사용할 데이터셋 (3) 데이터 증강에 대한 설명 (4) CNN모델 뼈대 구축 ※ 참고: 1세대 AI의료기업 왓슨, 그리고 뷰노, 루닛, JLK (1) 사전학습을 위한 cs231n 강의 Lecture2: Image Classification Pipeline https://doctorham.tistory.com/37 [CS231N] Lecture2: Image Classification Pipeline(1) 정리 강의 내용이 많기 때문에 두번에 나누어 정리하도록 한다. 우리가 일상속에서 접하는 이미지를 컴퓨터는 숫자의 메트릭스(행렬)로 인식한다. 1. 컴퓨터가 이미지를 인식하는데 있어 방해가 되는 doctorham.tistory.com https:..

[CS231N] Lecture3: Loss Functions and Optimization(1) 정리

이번 강의에서는 손실함수와 최적화 방법에 대해서 배워보도록 한다. 손실함수는 주어진 input값들에 대하여 weight인 W값(행렬의 형태로 주어짐)이 얼마나 잘 기능하는지(결과를 얼마나 잘 예측하는지)를 측정하기위한 도구이다. 1. 손실함수(Loss Function) 위의 식은 손실함수의 기본 형태를 나타낸 것이다(강의 슬라이드 우측 하단). 각 요소요소를 살펴보도록 하자. L은 손실함수의 최종 값(각 클래스별 손실함수값의 평균)을 나타낸다. N은 입력 이미지의 갯수를 나타낸다. L_i는 i번째 input값에 대한 손실함수의 값을 나타낸다(정답과 얼마나 차이가 있는지). 그 안의 두 파라미터를 살펴보자. 함수 f는 인풋 이미지x_i와 W를 이용하여 예측한 결과값(지난 강의의 score)을 나타낸다. 그..

[CS231N]Lecture2: Image Classification Pipeline(2) 정리

선형 분류를 통해 이미지를 식별하는 방법에 대해 알아본다. 선형 분류기(Linear Classificaion)은 CNN(Convolution Neural Network)을 구성하기위한 빌딩블록과 같기 때문에 이에 대해 잘 이해하는것이 중요하다. 선형 분류기를 활용한 CNN과 언어관련 Neural Network을 마치 레고블록처럼 연결할 경우 위의 슬라이드처럼 이미지가 주어졌을때 이미지에 대한 설명(Description)을 다는것이 가능해진다(이러한 일은 강의 후반부에 진행하므로 지금은 이런것이 있다는것 정도만 알고 넘어가도록 하자) Linear Classifier: Parametric Approach 선형 분류기는 위에서 잠깐 언급했듯이 이미지가 주어졌을때 파라미터(weight)를 이용하여 각 class..

[CS231N] Lecture2: Image Classification Pipeline(1) 정리

강의 내용이 많기 때문에 두번에 나누어 정리하도록 한다. 우리가 일상속에서 접하는 이미지를 컴퓨터는 숫자의 메트릭스(행렬)로 인식한다. 1. 컴퓨터가 이미지를 인식하는데 있어 방해가 되는 요소들 Illumination(밝기): 밝기가 너무 밝거나 어두운 경우 이미지의 식별이 어려울 수 있다. Deformatin(기형): 물체의 형태가 다양할 수 있다. 고양이의 경우 유연하기 때문에 여러가지(?)자세를 취할수 있기 때문에 고양이임을 식별하기 어려울 수 있다. Occlusion(폐색,폐쇄): 물체가 가려져있는 경우 물체를 식별하기 어렵다. Background Clutter(배경의혼잡): 배경과 물체의 구분이 어려운 경우, 배경이 너무 난잡한경우 물체 식별이 어렵다. Intraclass Variation(클래..

[인공지능어벤저스] 업스테이지: AI어번저스에게 직접 듣는 AI 개발자가 되기 위한 로드맵

해당 글은 2/9 업스테이지 clubhouse행사에 기반하여 작성되었습니다 :) 업스테이지는 기업들의 문제를 AI를 이용해서 해결할 수 있는 부분을 파악하여 컨설팅을 진행하고 있다. 아울러 기업의 인재들이 AI전문가가 될 수 있도록 돕는 AI관련 교육 사업도 진행하고 있다. 대표는 전 네이버 클로바 AI 책임리더셨던 김성훈님(AI분야 국내 최고 전문가)이 대표를 맡으셨다. 국내에서는 '모두를 위한 딥러닝'으로 잘 알려져 있으시다. 뿐만아니라 전 네이버 클로바 OCR리더 이활석 박사님, 박은정 전 네이버 파파고 테크분야 리더님께서도 합류하시는 인공지능계의 "어벤저스"가 모인 스타트업이라고 한다. 현재 인공지능 개발자를 꿈꾸는 비개발자들을 위한 교육 컨텐츠 뿐 아니라 유저들이 직접 핸즈온으로 사이트에 직접 ..

기업탐방 2021.02.09

[수학공부] 인공지능에 필요한 미적분 요약 정리 /Essential Calculus 솔루션/ Essential Calculus 2nd Edition

대학 미분적분1에 해당하는 내용을 포함하고있는 요약정리 자료입니다. James Stewart의 Essential Calculus 2nd Edition을 참고하여 만들어졌어요. 어떤식으로 필기 되어있는지 궁금하신 분들을 위해 아래의 이미지를 첨부합니다. ※ 교재의 문제에 대한 솔루션이 궁금하신 분들은 www.slader.com/ 에서 교재명과 Edition을 검색하시면 해답을 확인하실 수 있습니다. 다들 수학공부 파이팅! 과제 파이팅 하세요 :) 받아가실때 공감이나 댓글도 남겨주시면 감사하겠습니다. 오류나 수정사항에 대한 피드백도 받아요!

[OPIC] 시험 후기와 자기반성

2번의 시험을 봤다. 두번 다 IH가 나왔다. 솔직히 AL을 기대하지 않은 것은 아니다. 오픽이라는 시험을 조금 만만하게 봤는지도 모른다. 또한 순수 국내파인 나에게는 영어라는것이 나의 견고한 아비투스를 건드리는 일처럼 느껴지기도 했기 때문에 공부를 하는 과정이 즐겁지만도 않았던 것 같다. 또 나의 완벽주의 성향을 고려해 볼때, 탬플릿을 외우지 않고 임기응변 만으로 AL을 따고자 했으니, 어쩌면 욕심이 과했던 걸까. 탬플릿의 존재를 간과하지 말아야겠다는 생각이 들었다. 영어란 결국 암기가 베이스가 되는 시험이라는 생각이 든다. 많은 단어와 문장을 알수록 그것을 활용하고 조합하는 능력도 늘어나는 것이겠지. 따라서 나처럼 탬플릿의 도움따위 없이 원어민처럼 되고자 하는 사람이 있다면 다시 생각해보길 바란다. ..

영어공부 2021.02.04

[수학공부]인공지능을 위한 수학 총정리/ 요약본 다운로드

안녕하세요. 오늘은 "인공지능을 위한 수학"이라는 책을 읽은 감상을 남겨보려고 합니다. 우선, 이 책은 일본에서 출판된 책인데요, 딥러닝, 머신러닝에 입문하는 사람들 중 수학에 해박하지 않은 사람들을 위해 기본적이지만 핵심적인 수학적 내용을 담고있는 책입니다. 물론 저도 수학을 좋아하기는 해도 막상 딥러닝을 공부하다보면 애매하게 느껴지거나 잘 이해가 안되는 수학적인 부분이 있었는데요, 이 책을 읽고 나서 상당부분 해결이 됐고, 조금은 자신감이 생긴것 같습니다. 이 책은 문과를 졸업한 사람도 충분히 읽을 수 있도록 친절하게 설명되어있어요. 삼각함수, 미분, 선형대수, 통계와 같은 기본적인 내용들과 함께 자연어처리, 이미지처리에서 쓰이는 수학적인 부분들도 쉽지만 꽤 자세하게 설명이 되어있기 때문에 도움이 많..

[디버깅] 화내지 않고 체계적으로 디버깅 하는 방법

프로그래밍을 하다보면 성격이 나빠지는걸 경험할수 있습니다. 내가 이렇게 포기가 빠른 인간이었는지 새삼 절망스럽기 도 하구요. 저와 같은 분들을 위해 제가 오류에 맞서는 방법을 소개해 드리려고 합니다. 다른 좋은 방법이 있는 분들이 계시다면 자유롭게 의견 주시면 감사하겠습니다 :). 1. 어디서 오류가 났는지부터 찾는다. 이것만 잘 찾아도 절반은 해결했다고 봐도 된다. F9(중단지 표기), F10(함수에 들어가지 않고 한줄씩 실행), F11(함수에 들어가서 한줄씩 실행)를 이용해서 정확하게 찾아낸다. 2. 변수의 값 확인해보기 오류가 날 가능성이 있는 변수들을 출력해본다. 중간에 runtime error가 발생하더라도 오류가 난 지점까지의 변수 값이 출력되기 때문에 변수의 어떤 부분이 잘못되었는지 알 수 ..

2021 카카오 블라인드 코딩테스트 후기

어제 카카오 블라인드 코딩테스트가 있었다. 물론 내 수준에서 다 풀지 못할것을 알고있었기 때문에 가벼운 마음으로 대회에 임했다. 내가 손댈수 있었던 문제는 유사 아이디 추천, 코스요리 정하기, 채용 알고리즘 작성하기 (3번째까지)였다. 첫번째 문제는 문제에서 주어진대로 그대로 따라하기만 하면 풀수있을 정도로 그다지 어렵지 않았고, 두번째 문제는 이전에 알고리즘 공부를 하면서 봤던 유형의 문제라 unordered map이랑 dfs를 사용해서 풀었다. 세번째 문제에서는 분명 주어진 테스트세트에서는 잘 동작하는데 코드를 제출하면 틀렸다고 나와서 솔직히 아직도 뭐가 잘못되었는지 모르겠다. 나중에 해설이 나오면 다시 봐야겠다. 어쨌든 꽤나 긴 시간을 테스트를 치면서 느낀점이 있다면, 나도 할수 있을것 같은데?! ..

반응형