728x90

IT 417

[python] python의 변수 사용 범위 정리 (1)

먼저, 이 글에서 자주 사용될 단어인 글로벌 변수와 로컬 변수에 대한 간략한 정의에 대해 알아보자. 글로벌 변수(전역변수)는 함수 외부에서 선언된 변수로, 프로그램 전체에서 접근할 수 있는 변수입니다. 로컬 변수(지역변수)는 함수 내부에서 선언된 변수로, 함수가 실행되면 만들어지고 함수가 종료되면 소멸하는 변수입니다. 함수 외부에서는 접근할 수 없습니다. 1. 글로벌 변수와 로컬 변수 Python은 함수 내에 변수를 호출할 때, 글로벌로 이미 정의되어있는 경우는 글로벌 변수가 사용된다. global_var = "Global Varibale" def get_global(): local_var = global_var return local_var print(get_global()) >>> Global Var..

IT/언어 2020.08.18

Python 3 엔지니어 인증 기초 시험(Python 3 エンジニア認定基礎試験) - (2) 모의고사에서 자주 출제되는 개념

■ math 모듈 import math math.cos(math.pi/3) # 0.5000000000000001 math.pi에 의해 π가 호출된다. 위 코드에서는 π를 대입하여 3으로 나누고 그 값을 math.cos()를 사용하여 구하고 있다. pi()가 아닌 pi인 것을 주의하자. ■ JSON형식의 출력 import json x = {'name':'hiroyuki','date':[1985,1214]} print(json.dumps(x)) # {"name": "hiroyuki", "date": [1985, 1214]} JSON은 JavaScript 프로그래밍 언어의 오브젝트 표기법을 베이스로 만들어진 데이터 포맷으로 이 데이터를 넘겨주는 것만으로 JavaScript, PHP, Ruby 등으로 다양한 처..

IT/자격증 2020.08.18

[python] python의 sort함수에 사용되는 lambda에 대한 이해

이 포스팅에서는 python의 sort함수에 사용되고 있는 'lambda'에 대해 소개한다. 1. 사전형이나 리스트 형을 sort할 때 아래와 같은 형식을 자주 마주친다. 사전형이나 리스트 형을 sort하는 경우가 많을 것으로 생각되는데, 그 때 sorted(d.items(), key=lambda x: x[1]) 위와 같은 코드를 본 적이 있지 않은가? 나는 자주 보았다. 위의 예에서는 사전의 value를 원래대로 정렬하고 있다. 스스로도 정렬하고 싶을 때 자주 사용하지만, 의미를 잘 모른채 사용해왔다. 이대로는 위험하다고 생각하여 조사해보았다. 2. 그나저나 lambda란 무엇인가? lambda는 무명함수라고 불리며 그 이름대로 이름 없는 함수를 작성할 때 사용한다. 예를 들어 아래의 예에서는 lamb..

IT/언어 2020.08.17

Python 3 엔지니어 인증 기초 시험(Python 3 エンジニア認定基礎試験) - (1) 자료 수집

시간적 여유가 생겨서 자격증 공부를 시작해야지 하고 있었는데 마침 선배에게 일본의 python 관련 자격증을 추천받아 공부를 시작해보고자 한다. 자격증 타이틀은 위 제목을 통해 알 수 있듯 "Python 3 엔지니어 인증 기초 시험(Python 3 エンジニア認定基礎試験) "이다. 이와 관련된 내용은 '자료 수집', '모의고사에 자주 출제되는 개념'과 '시험 결과 및 소감' 3개의 포스팅으로 작성할 생각이다. 이번 포스팅에서는 이 자격증이 어떤 자격증인지, 일본에서는 어떻게 준비를 하고 있는지에 대해 정리해 볼 생각이다. 1. 자격증 기본 정보 공식 홈페이지 : https://www.pythonic-exam.com/exam/basic 基礎試験 Python 3 エンジニア認定基礎試験 ◆受験方法 受験日:通年 試..

IT/자격증 2020.08.17

[수학/분포] 정규분포 간의 KL 발산(쿨백-라이블러 발산 ; Kullback–Leibler divergence, KLD)

위키피디아에 있는 쿨백-라이블러 발산(Kullback–Leibler divergence, 이하 KLD)의 정의에 대해 잠깐 정리하자면, 다음과 같다. KLD는 두 확률분포의 차이를 계산하는 데에 사용하는 함수로, 어떤 이상적인 분포에 대해, 그 분포를 근사하는 다른 분포를 사용해 샘플링을 한다면 발생할 수 있는 정보 엔트로피 차이를 계산한다. 상대 엔트로피(relative entropy), 정보 획득량(information gain), 인포메이션 다이버전스(information divergence)라고도 한다. 정보이론에서는 상대 엔트로피, 기계학습의 결정 트리에서는 정보 획득량을 주로 사용한다. 쿨백-라이블러 발산은 비대칭으로, 두 값의 위치를 바꾸면 함수값도 달라진다. 따라서 이 함수는 거리 함수는 ..

IT/AI\ML 2020.08.07

[수학/분포] 확률변수 Jensen 부등식의 직감적 이해

확률변수와 관련된 Jensen의 부등식을 예를 이용하여 직감적으로 이해해보려고 한다. x를 확률 변수, p(x)를 x의 확률밀도함수라고 한다면 그 기대치 E[x]는 아래의 식과 같다. 이때 위에 볼록 튀어나온 함수 f(x)에 대해, 위의 부등식이 성립한다면, "Jensen의 부등식"이라고 부른다. 이 증명과 관련하여는 여러 곳에서 해설하고 있으니 여기서는 생략하고 하도록 한다. (예를 들면, 여기) 이 부등식 f(E[x])≥E[f(x)] 을 직감적으로 이해하기 위해 난수를 이용한 예를 그래프로 표시해보도록 하겠습니다. 먼저, x가 정규분포를 따르는 확률 변수라고 가정했을 때, 여기서 발생하는 난수를 만들어 보았습니다. 또한, x를 아래의 함수로 변환하였습니다. 아래의 그래프 위쪽에 있는 히스토그램이 정규..

IT/AI\ML 2020.08.06

[IT 회사 생활] 일본 SE 세계의 용어

SE세계에서 자주 쓰이는 용어들 중에 비슷해 보이지만 뉘앙스가 조금씩 다른 것들이 있다. 비슷한 표현을 구사하는 그 뒤에 그 사람의 의도나 생략된 문맥에 숨겨져 있기도 한다. 어떠한 국가에서도 커뮤니케이션이 잘 못되면 꽤 성가셔지므로 이러한 상황이 발생하지 않도록 SE 세계의 용어를 정리해보았다. 말하는 사람도, 들었던 사람도 다시 한 번 말의 의미를 응시해보면 새로운 깨달음을 얻을지도 모른다. 또한, '절대로 SE세계에서만 사용한다'라는 종류만을 모은 것은 아니기 때문에 그 점은 양해해주길 바란다. 1. 동사 미묘한 표현의 차이에도, 실제로 구체적인 상황에 따른 차이가 있다. 시스템을 의인화하여 주어로 삼는 것이 특색이다. 용어 발음 해설 예시 渡す わたす 데이터를 송신하는 것. 송신처에 데이터가 올바..

GAN ; PG-GAN(Progressive Growing of GANs)

1. PG-GAN(Progressive Growing of GANs)의 개요 PG-GAN를 한 마디로 설명하면, '저해상도의 이미지로부터 시작해 네트워크의 레이어를 추가해가며 점차 해상도를 높여가는 GAN'라고 할 수 있다. 기존의 GAN과 같이, 모든 스케일에 대해 동시에 학습하는 것이 아닌, 먼저 처음에 대략 이미지 구성을 파악한 뒤 단계적으로 세부적인 부분에 주목해 간다. 위 그림의 NxN은 해상도가 NxN인 convolution층을 의미한다. 참고로 모든 층은 항상 훈련이 가능한 상태이다. 본 연구의 학습에서는 Generator과 Discriminator 각각 저해상도 (4x4)의 층으로 부터 시작하여 학습이 진행해감에 따라 조금씩 Generator과 Discriminator에 층을 추가해나가는 ..

IT/AI\ML 2020.07.06

[IT 회사 생활] 초보 엔지니어에게 추천하고 싶은 일의 진행 방식

본격적인 포스팅의 앞서 참고자료의 링크 내용을 번역했다는 점을 우선 밝힙니다. 의역과 오역이 있을 수 있습니다. 댓글로 지적해주시면 수정하겠습니다. 선배 엔지니어에게 '얼마정도 진행됐습니까?'나 '왜 이 작업에 이만큼의 시간이 걸린건가요?'라고 듣는 경우가 있지 않나요? 또한, 작업 견적이나 업무 분할을 제대로 하지 않고, 코드를 쓰기 시작하는 경우도 있다고 생각한다. 이로인해 결국 마음대로 코드를 쓰기 시작해 결국 거의 1부터 코드를 고치는 경험도 있을 것이라고 생각한다. 나의 경우는 업무 방식을 제대로 주입받았지만, 주의에 얘기를 들어보니 업무 방식을 어떻게 업무를 해야하는지 잘 모르는 사람들이 있는 것 같아 이 포스팅을 작성하게 됐다. 또한 엔지니어를 위해서 작성하였지만, 어떤 일에도 보편적으로 적..

[python/numpy] Numpy의 데이터형 dtype과 astype를 사용한 변경(캐스트)

Numpy배열 ndarray는 dtype으로 저장되어, np.array()로 ndarray오브젝트를 생성할 때 지정하거나 astype()메소드로 변경하거나 하는 것이 가능하다. 기본적으로 하나의 ndarray오브젝트에 대해 하나의 dtype가 설정되어 있으며, 모든 요소가 같은 데이터 형이 된다. 하나의 ndarray로 복수의 데이터형으로 다루기 위한 Structured Data(구조화 데이터)라는 것도 존재하지만 여기서는 다루지 않는다. 참고로 복수의 데이터형을 포함한 배열 (수치의 열 또는 문자열의 열을 포함한 2차원 배열 등)을 처리할 때 pandas가 편하다. ​ 여기서는, 아래의 내용에 관련해서 설명한다. 1. Numpy의 주요 데이터형 dtype 2. 숫자형이 취할 수 있는 범위 (최소값, 최..

IT/언어 2020.06.05
728x90