분류 전체보기
[33-js-concepts] 6. 함수 범위, 블록 범위, 렉시컬 범위 (Function Scope, Block Scope and Lexical Scope)
스코프란? 바스크립트는 var 문법을 통해 변수를 선언할 수 있습니다. 또한 es2015부터 let과 const라는 문법으로도 선언할 수 있게 되었습니다. 모질라 문서에 따르면 var은 함수 스코프(function-level scoped), let과 const는 블록 스코프(block-level scoped)를 갖는다고 합니다. 스코프의 범위 전역스코프? 변수가 함수나 블록에 속해 있지 않음 함수 내부에 속해 있더라도 var로 지정자를 설정하지 않음 const,let 등으로 선언을 했는데 그 어떤 블록 안에도 들어가있지 않음 지역스코프? 변수가 함수에 속해 있고 var로 선언되어 있음 변수가 블록에 속해 있고 const나 let으로 선언되어 있다. 스코프 레벨 함수 스코프? 함수 내부에서 (var)로 변..
[33-js-concepts] 5. == vs. === vs. typeof
Falsy, Truthy 강제변환하면 false로 변하는 값입니다. JS에 있는 모든 값들은 Falsy 혹은 Truthy 한 값입니다. Falsy 값은 얼마 되지 않아서 외워두면 되고, 나머지는 Truthy한 값이라고 생각하면 됩니다. Falsy : undefined null false +0, -0, NaN "" Equality ( == , 동등 연산자 ) 느슨한 동등 비교로, 비교 대상의 타입이 다를 경우 강제 변환을 실시하여 타입 비교 후 결과를 반환한다. 추상 비교 알고리즘(Abstract Equality Comparison Algorithm)을 사용하며, 비교 후 같은지 결과를 true 혹은 false로 반환한다. 작동 알고리즘 먼저 비교대상이 되는 x와 y는 true와 false로 표현될 수 있..
[33-js-concepts] 4. 명시적 변환, 암시적 변환, Nominal, 구조화, 덕 타이핑 (Implicit, Explicit, Nominal, Structuring and Duck Typing)
데이터 타입 변환에는 두가지가 있다. 1.명시적 변환 : 개발자가 의도를 가지고 데이터타입을 변환시키는 것 * 타입을 변경하는 방법 -> Object(), Number(), String(), Boolean() 와 같은 함수를 이용 new 연산자가 없다면 타입을 변환하는 함수로서 사용된다. Number() != parseInt() 2.암시적 변환 : 자바스크립트 엔진이 필요에 따라 자동으로 데이터타입을 변환시키는 *산술연산자 - 더하기 + 연산자의 우선순위 : 숫자 < 문자 console.log(4 + "coen"); 결과 : coen console.log("coen" + 4); 결과 : coen4 console.log(4 + 5 + "coen"); 결과 : 9coen console.log(4 + "coe..
[33-js-concepts] 3. 값 타입과 참조 타입 (Value Types and Reference Types)
1.값 원시타입 ( boolean, null, undefind, string,number, symbol) 원시타입은 immutable data type 이기 때문에 ,값이 변경될 경우, 새로운 값을 할당을 받음. let myNumber=23; let newVar = myNumber; myNumber = myNumber+1; 2. 참조 객체타입 ( object) 메모리상의 실제 객체의 위치를 나타내는 주소값을 할당받음. let myArray =[]; [ let vs const : 변수할당이 나온 김에 번외 let sum=0; sum = 1+2+3+4+5; let numbers=[]; numbers.push(1) numbers.push(2) numbers.push(3) numbers.push(4) let 과..
[33-js-concepts] 2. 원시 자료형 (Primitive Types)
특징 JavaScript의 모든 Type은 원시타입(Primitive Type) 6개와 객체타입(Object Type) 1개로 총 7개 입니다. 원시타입은 불변적입니다. 원시 타입은 값(value)으로 저장, 객체들은 참조(reference)로 저장 됩니다. 어떠한 메소드를 가지고 있지 않습니다. Type을 알고 싶으면 typeof 를 쓰면 됩니다. typeof null === 'object' 인 이유 null은 원시타입 인데 객체 타입이라고 나타내고 있습니다. typeof가 검사하는 방식 1. undefined인지 검사 2. 해당 값이 객체 태그를 가졌는지 검사 3. 숫자, 문자, 참/거짓 검사 ※ null에 대한 명시적인 검사는 없습니다. 1. undefined 인지 검사 2. 해당 값이 객체 태그를..
[33-js-concepts] 1. 호출 스택 (Call Stack)
1.1 JavaScript Engine 자바스크립트란? JavaScript를 접하다 보면 이런 수식 문장을 종종 접할 수 있습니다. 싱글 스레드 기반으로 동작하는 인터프리터 언어 이벤트 루프를 기반으로 하는 싱글 스레드 Node.js 초창기에는 웹 페이지의 동작을 정의하는 Client-side 언어였으나, Node.js의 등장으로 Server-side 까지도 개발을 할 수 있게 되었습니다. 중요한 키워드는 싱글 스레드 방식으로 돌아가기 때문에 작업(Task)을 수행할 때 Stack, Queue, Heap과 같은 단일 콜 스택을 가집니다. Rendering Engine vs. JavaScript Engine Rendering Engine(Layout Engine)은 HTML과 CSS로 작성된 마크업 관련 ..
[Python] keras를 활용한 뉴스분류 실습
43. keras를 활용한 뉴스분류 실습 41.1 실습예제 # 케라스 로딩 import keras keras.__version__ # 뉴스 기사 분류: 다중 분류 문제 # 로이터 뉴스를 46개의 토픽으로 분류하는 신경망(다중분류) ## 로이터 데이터셋 # 1986년에 로이터에서 공개한 짦은 뉴스 기사와 토픽의 집합인 데이터셋(케라스 내장 데이터셋) # 텍스트 분류를 위해 널리 사용되는 간단한 데이터셋 # 46개의 토픽 # 각 토픽은 최소 10개의 샘플이 있음 # 데이터 다운로드 from keras.datasets import reuters # 자주 등장하는 단어 10,000개로 제한 (train_data, train_labels), (test_data, test_labels) = reuters.load_..
[Python] keras를 활용한 영화리뷰 분석
42. keras를 활용한 영화리뷰 분석 42.1 실습예제 # 영화 리뷰 분류(이진분류) # 영화 리뷰를 긍정, 부정으로 분류 import keras keras.__version__ ## IMDB 데이터셋(케라스에 내장된 데이터셋, 숫자로 전처리되어 있음, 17MB 정도의 데이터셋) # 영화 리뷰 50,000개의 데이터셋 # 학습용 데이터 25,000개와 검증용 데이터 25,000개, 각각 50%는 부정, 50%는 긍정 리뷰로 구성 # num_words=10000 가장 자주 나타나는 단어 10,000개만 사용, 드물게 나타나는 단어는 무시 # train_data, test_data: 리뷰의 목록 # 각 리뷰는 단어 인덱스의 리스트(단어 시퀀스가 인코딩된 것) # train_labels, test_labe..
[Python] 오토인코더(keras)
41. 오토인코더(keras) 41.1 오토인코더(autoencoder) 41.1.1 주성분분석으로 처리하는 일차원 데이터 처리 방식을 딥러닝 방식으로 확장하는 방식으로 비지도학습 방법 41.1.2 다차원 입력 데이터를 저차원 부호로 바꾸고 다시 저차원 부호를 처음 입력한 다차원 데이터로 바꾸면서 특징점들을 찾아내는 방식 41.1.3 핵심적인 정보만을 남기고 사람이 잘 느끼지 못하거나 둔감한 정보는 손실시키는 압축 방식, 출력값은 입력값의 근사치(노이즈가 있는 데이터가 주어졌을 때 노이즈를 제거하여 원래의 데이터를 재현하는데 사용되는 모델) 41.1.4 부호화 과정 41.1.4.1 입력층에 들어온 다차원 데이터가 차원을 줄이는 은닉층으로 입력됨 41.1.4.2 은닉층의 출력이 부호화 결과 41.1.5 복..
[Python] 합성곱 신경망(CNN)
40. 합성곱 신경망(CNN) 40.1 CNN 40.1.1 이미지를 작은 구역으로 나누어 부분적인 특징을 인식하고 이것을 결합하여 전체를 인식하는 알고리즘 40.1.2 이미지 인식에 성능이 뛰어나며 최근 텍스트 분류에도 많이 사용되고 있음 40.1.3 텍스트 데이터를 word2vec을 적용하여 벡터로 변환한 후 CNN에 입력하여 분석하는 모델 40.2 실습예제1(이미지 분류-mnist) # 합성곱 신경망 # MNIST 숫자 이미지 분류에 CNN 사용 # (image_height, image_width, image_channels) 크기의 입력 텐서를 사용 # 첫 번째 입력층의 매개변수로 input_shape=(28, 28, 1) 전달 import keras keras.__version__ from ker..
[Python] DNN(Keras)
39. DNN(keras) 39.1 실습예제(mnist) # 필기체를 분류하는 DNN 구현 # 심층신경망(Deep Neural Network, DNN) 은닉층을 많이 쌓아서 만든 인공신경망 # 학습데이터가 적거나 복잡한 이미지에 더 우수한 성능을 보이는 기법 %matplotlib inline import numpy as np import pandas as pd import os from keras.utils import up_utils from keras import layers, models, datasets # seaborn import seaborn as sns sns.set(style = 'white', font_scale = 1.7) sns.set_style('ticks&#..
[Python] 인공신경망 실습(Keras)
38. 인공신경망 실습(keras) 38.1 실습예제1(기초적인 인공신경망) # 케라스 패키지 임포트 from keras.models import Sequential from keras.layers import Dense import numpy as np # 입출력 데이터 # 딥러닝 모델에 입력할 값 x = np.array([0, 1, 2, 3, 4]) # 출력값: x * 가중치 + 편향 y = x * 2 + 1 print("x: ", x) print("y: ", y) # 인공신경망 모델링 # 케라스 인공신경망 생성 model = Sequential() # 입력노드 1개를 가지는 선형처리계층 추가 model.add(Dense(1, input_shape = (1,))) # 모델 컴파일, 확률적 경사 하강법..