본문 바로가기

aiffel 일기

[딥러닝] K-NN 알고리즘을 사용하지 않는 이유 K-NN 알고리즘이 단순하고 효율적임에도 불구하고 잘 사용되지 않는 이유는 해당 알고리즘이 가진 한계 때문이다. 모델을 생성하지 않는다 클래스간 관계를 이해하는데 제한적이다. 적절한 K 값을 찾기 어렵다 데이터가 많아지면 분류 단계가 느리다 특히, 차원이 증가함에 따라 필요한 연산량이 기하급수적으로 많아진다 누락 데이터를 위한 추가 처리가 필요하다 그렇다면 K-NN 알고리즘은 오늘날 어떤 경우에 사용되고 있는가? 단기 교통 상황 예측 (참고 : https://scienceon.kisti.re.kr/srch/selectPORSrchArticle.do?cn=JAKO201616853627138&dbt=NART) 유해 이미지 차단 기술 (참고 : https://brunch.co.kr/@kakao-it/336) .. 더보기
[Python] 다중 상속을 지양해야 하는 이유 다중 상속을 지양해야 하는 이유 객체지향 언어에서 다중 상속에 대한 문제는 꾸준히 제기되어 왔다. 다중 상속을 사용하다 보면 코드의 흐름이 모호해지고, 여러 가지 문제를 일으킬 수 있다. 이러한 이유로 다중 상속 자체를 지원하지 않는 언어도 있다. 또한, 나를 포함한 일부 개발자들은 다중 상속의 사용 자체를 지양해야 한다고 주장한다. 그렇다면 다중 상속은 꼭 필요할까? 필요하다면, 어떤 상황에서 쓰는 게 좋을까? 다중 상속의 문제점 다이아몬드 문제 이처럼 Son이 FatherA와 FaterB의 메서드와 속성을 상속받는 관계가 있다고 가정하자. 그런데 FatherA와 FatherB에 같은 메서드가 존재한다면 어떨까? F atherA와 FatherB가 GrandFather을 상속받으면서 해당 메서드를 서로 .. 더보기
[AIFFEL] AIFFEL EXP 1. 인공지능과 가위바위보 하기 https://github.com/dlwoguq0928/aiffel-exp-1 aiffel-exp-1 AIFFEL Exploration Node 1. 인공지능과 가위바위보 하기 Over Fitting 줄이기 표준 Dataset 사용 (Quantity and Quality) Rock Paper Scissors Dataset https://www.tensorflow.org/datasets/catalog/rock_paper_scissors Train / Validation 데이터 70:30으로 배분 BatchNormalization & DropOut Conv - DropOut - BatchNorm - Activation 순서로 구성 https://stackoverflow.com/questions/3969190.. 더보기
[Python] 정적 메서드는 쓸모 있을까? 정적 메서드(static mathod)는 쓸모 있는 걸까? 정적 메서드의 장점 효율적으로 메서드를 공유할 수 있다. 메서드 사용을 위해 매번 객체를 생성하지 않아도 되므로 효율적이다. 정적 메서드의 단점 객체지향에서 멀어진다. static은 객체 지향보다는 절차 지향에 가까운 키워드다. 객체의 생성/제거와 상관 없이 프로그램 시작부터 종료 시까지 메모리에 남아 있기 때문이다. 메모리 효율이 떨어진다. GC(Garbage Collection)의 대상이 아니므로 메모리 효율이 떨어질 수 있다. 정적 메서드를 사용하는 상황 사람마다 생각이 다를 것 같다... 내 생각엔 웬만하면 "굳이" 쓸 이유는 없는듯 하다. 더보기
[Python] 파이썬 스크립트 실행 순서 확인하기 주제. 파이썬 스크립트의 실행 순서를 확인할 수 있을까? 방법 1 IDE에서 중단점을 찍으면 디버그 로그에서 순서를 확인할 수 있다. 방법 2 https://pythontutor.com/visualize.html#mode=edit Python Tutor - Visualize Python, Java, JavaScript, C, C++, Ruby code execution Write code in Python 3.6 Java 8 JavaScript ES6 C (gcc 9.3, C17 + GNU extensions) C++ (g++ 9.3, C++20 + GNU extensions) ------ [unsupported] Python 2.7 [unsupported] C (gcc 4.8, C11) [unsuppo.. 더보기
[Python] set에서 deepcopy의 실효성 (AIFFEL 12/30 일기) 주제 : Set Type에서 Deepcopy의 실효성? 파이썬에서 Copy 라이브러리를 임포트하면 deepcopy 메서드를 사용할 수 있다. copy와 deepcopy, 즉 얕은 복사와 깊은 복사는 차이가 있는데, 이는 list에서 확연히 드러난다. copy 메서드를 사용한 얕은 복사에서는 다차원 리스트에 대해 2차원 이상의 내부 요소까지 새로운 객체로 할당되지 않는다. 그러나 set 자료형은 list와는 차이가 있다. set 안에는 set나 list와 같은 자료형을 넣어서 다차원으로 구성할 수가 없다. copy와 다를 점이 없는 것이다. 그렇다면 과연 set type에서도 deepcopy의 실효성이 있을까? 접근 1. set에서도 deepcopy가 작동하는가? list와 마찬가지로 set에서도 deep.. 더보기
[AIFFEL] AIFFEL 12/29 일기 오전 - LMS 이번 LMS에서는 실용적인, 그렇다고 다 외울 것까진 없어 보이는? 주제들에 대해서 배웠다. 특히 문자열 메서드와 파일 입출력, 파일 포맷 부분은 실제 서비스를 구현할 때에도 널리 사용되는 부분인데 기초적인 단계부터 돌아볼 수 있어서 좋았다. 그럼에도 LMS를 금방 끝내서 시간이 남았다. 그래서 커뮤니티 답변이나 질문을 생각해 내면서 시간을 보냈다. 한 번은 내가 "정규표현식을 자동으로 만들어 주는 서비스, 혹은 정규표현식에 관한 내용을 쉽게 찾아볼 수 있는 법이 있을까요?"라고 질문했더니, 한 분께서 Cheet Sheet라는 키워드를 주셨다. Check Sheet에는 용도별 자주 쓰이는 정규표현식을 직관적으로 볼 수 있도록 정리되어 있었다. 어느 정도 문서를 대강 찾아보는 방법은 알고 .. 더보기
[AIFFEL] AIFFEL 12/28 일기 LMS & 코딩 도장 LMS에서 파이썬 기초를 실습했다. 파이썬을 잘하진 않지만 기초적인 건 해본 적 있어서 어렵지 않았다. AIFFEL에서 이러한 LMS를 만드는 데 돈이 많이 들었을 거 같다는 생각이 들었다. 이후 코딩 도장에서도 비슷한 걸 배웠는데 이것도 크게 힘들진 않았다. 다만 코딩 도장의 코드 입력창이나 파이썬에서 기본으로 제공하는 IDLE는 불편해서 나는 Google Colab을 사용했는데, Colab과 같은 다른 IDE를 모르는 분들은 문제를 풀면서 불편하셨을 것 같아 걱정이 되었다. 놀러 다니기 내가 "클릭 클릭 클릭"으로 빨리 넘겨서 그런지 시간이 많이 남아서, 게더타운 맵을 빙빙 돌아다니며 다른 조를 구경했다. 다들 공부하느라 바쁘신듯 했다. 그래서 울산 캠퍼스까지 놀러 갔는데도 아무.. 더보기