분류 전체보기

    [Deep Learning] Activation Function ( 활성화 함수 ) - 비선형 함수(non linear function )

    딥러닝에서 인공신경망을 설계할때 레이어마다 항상 Activaiton Function(활성화 함수)를 파라미터로 넣게된다. model.add(layers.Dense(units=512, activation='relu')) relu , elu 등등 ... 이런 것들은 왜 필요한 것일까? 먼저 활성화 함수가 없는 상태를 알아보자. 가장 간단한 인공신경망에서 이렇게 행렬곱으로 연산을 하게 된다. x1 * W1 + x2 * W2 + bias 이것을 한층 더 쌓아보자. 조금 복잡해지지만 행렬곱으로 표현할 수 있다. 하지만 아무리 Layer 를 많이 쌓더라도 결국 복잡한 선형회귀식이 될 뿐이다. Y = ax1 + bx2 + cx3 ....... + b 결국 직선이다.. 아무리 복잡한 식을 가져온들 직선으로는 곡선이 필..

    [설치]. 윈도우 하위 시스템 WSL 셋팅하기

    WSL 셋팅 코드를 직접 입력해야하는 경우는 노란색 배경 처리 WSL : Linux용 Windows 하위 시스템 ( 윈도우에서 리눅스를 사용할 수 있는 시스템 ) 1. 설치 및 설정 Microsoft Store 에서 Ubuntu 20.04 다운로드 윈도우 앱으로 설치됨. WSL 버전 확인 윈도우 파워쉘에서 wsl –l –v 명령어로 확인 가능 *WSL 버전 번경 만약 version1 이라면 -> version2로 버전을 변경 시켜줘야함. (종종 이런 경우 발생함. 공식 홈페이지 메뉴얼 참고) 추가 참고 자료 https://www.44bits.io/ko/post/wsl2-install-and-basic-usage Window 하위 시스템 활성화 Linux 용 Windows 하위 시스템 체크 2.리눅스 셋팅..

    [설치]. 리눅스 환경에서 Anaconda 설치하기

    리눅스의 경우 일반적으로 터미널에서 진행한다고 가정하고 설치 설치파일 다운로드 curl -0 https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh 다운로드가 완료되면 bash 명령어를 통해 설치파일 실행 bash Anaconda3-5.0.1-Linux-x86_64.sh 라이센스 동의를 구하는 메시지가 나오면 'yes' 입력 Do you approve the license terms? [yes|no] 아니콘다 설치 경로를 선택하는 메세지 -> 엔터눌러서 기본경로에 설치 Anaconda3 will now be installed into this location: /home/username/anaconda3 설치가 완료되면 아나콘다에 대한 경로를..

    [pymysql]. 파이썬 SQL 쿼리 한꺼번에 전송하기

    pymysql 패키지를 사용하여 데이터 프레임에 있는 데이터를 DB에 삽입할때 ( 쿼리를 전송할 때 ) 우리는 크게 세 가지의 과정을 거친다. 첫 번째, DB 커넥트 ( DB 접속 정보를 가지고 DB와 연결하는 과정 ) 커서 객체 생성 import pymysql # data base connect db = pymysql.connect(**RDS_config, cursorclass=pymysql.cursors.DictCursor) # 커서 객체 생성 cursor = db.cursor() 두 번째, 쿼리문 작성 : 실행하고자 하는 쿼리문을 작성합니다. execute : 쿼리문을 실행시킵니다. query = """INSERT INTO {} VALUE =({},{},{})""".format(table_name,..

    [데이터 전처리]. tqdm pandas , apply & map progress_bar 생성

    tqdm 은 for 문을 처리할때 진행률을 표시해주는 파이썬 라이브러리이다. 하지만 pandas 에서 열전체의 함수를 매기는 map 이나 데이터프레임 전체에 함수를 매기는 apply 의 경우 많은 데이터의 실행을 했을 때 진행률을 알 수 없고 주피터에서 * 표시만 계속 쳐다볼뿐이다. 그래서 pandas 의 map 함수와 apply 함수의 진행률을 볼 수 있는 방법을 공유한다. apply import pandas as pd import numpy as np from tqdm import tqdm # from tqdm.auto import tqdm # for notebooks df = pd.DataFrame(np.random.randint(0, int(1e8), (10000, 1000))) # Create ..

    [Tensorflow] . failed to create cublas handle: CUBLAS_STATUS_INTERNAL_ERROR

    Tensorflow 2에서 자꾸 아래와 같은 오류가 나서 고생 했습니다. 2019-12-30 01:42:43.383561: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cublas64_100.dll'; dlerror: cublas64_100.dll not found 2019-12-30 01:42:43.383761: E tensorflow/stream_executor/cuda/cuda_blas.cc:238] failed to create cublas handle: CUBLAS_STATUS_INTERNAL_ERROR 2019-12-30 01:42:43.384698: E tensorf..

    2. 연결 리스트 (Linked List)

    1. 노드 정의 class Node: def __init__(self, item): self.data = item self.next = None 노드는 자신이 가지고 있는 값을 나타내는 data 와 다음 노드를 가리키는 next 를 가지고 있다. 2. 연결 리스트 생성자 class LinkedList: def __init__(self): self.nodeCount = 0 self.head = None self.tail = None 3. 연결리스트 인덱스에 해당하는 노드를 가져오는 메서드 - getAt def getAt(self, pos): # 입력한 인덱스가 범위를 벗어나는 경우 if pos self.nodeCount: return IndexError i = 1 #처음부터 curr..

    1. 이진 탐색

    문제 설명 : 리스트 L 과, 그 안에서 찾으려 하는 원소 x 가 인자로 주어질 때, x 와 같은 값을 가지는 원소의 인덱스를 리턴하는 함수 solution() 을 완성하세요. 만약 리스트 L 안에 x 와 같은 값을 가지는 원소가 존재하지 않는 경우에는 -1 을 리턴합니다. 리스트 L 은 자연수 원소들로 이루어져 있으며, 크기 순으로 정렬되어 있다고 가정합니다. 또한, 동일한 원소는 두 번 이상 나타나지 않습니다. 예를 들어, L = [2, 3, 5, 6, 9, 11, 15] x = 6 의 인자들이 주어지면, L[3] == 6 이므로 3 을 리턴해야 합니다. 다른 예로, L = [2, 5, 7, 9, 11] x = 4 로 주어지면, 리스트 L 내에 4 의 원소가 존재하지 않으므로 -1 을 리턴해야 합니다..

    [기계 학습]. SGD 와 mini batch ( 최적화 기법 )

    Batch size 의 개념 3명의 학생이 있고 100개의 문제를 주어졌을 때 여러가지 상황이 있다. 1번 학생 ( Batch size == 100 ) : Full-batch 1번 학생은 100개의 문제를 다 풀고 난 뒤 정답을 확인하고 수학문제 정답률을 증가시킨다. 2번 학생 ( Batch size == 10 ) : Mini-batch 2번 학생은 100개의 문제중 10개의 문제를 보고 답안지를 보고 정답률은 향상시키고 또 다시 10개의 문제를 보고 정답률을 향상시킨다 ( 10회 반복 ) 3번 학생 ( Batch size == 1 ) : SGD 3번 학생은 100개의 문제를 하나 풀고 정답보고 정답률 향상 시키고 , 하나 풀고 정답보고 ....(100회 반복) 즉 문제하나를 풀 때마다 수정 , 개선 방..

    [탈락] 복기

    나는 넥슨 인공지능 연구소에 인턴으로 지원했고 과제 전형에서 탈락했다. 나름 최선을 다했다고 생각했지만 돌이켜보니 부족한 부분과 아쉬웠던 부분이 떠올라서 복기해보고자 한다. 1 : 최선 내가 아는 만큼은 최선을 다했다 캐글 분석캠프에서 배운 내용과 여러 참고자료를 바탕으로 할 수 있는 방법을 최대한 동원하려고 노력했다. 그게 문제다 아는 만큼만 최선을 다했다. 2 : 창의적인 접근 나는 창의적으로 데이터에 접근하지않았다 정확도를 높이는 데에만 집중했고 비교적 단순한 파생변수를 만들었다. 한 마디로 말하자면 다른 지원자들이 기본으로 했을 법한 것들만 한 정도? 분석가로서의 데이터 분석보다 엔지니어로써 더 집중한 것이 아쉽다. ( 시간 간격에 대한 파생변수를 만들어 보지 못한 아쉬움 등등.. ) 3 : 고정..