분류 전체보기 170

귀무가설, 대립가설

귀무가설, 대립가설 귀무가설의 정의는 ‘모집단의 특징이 옳다고 제안하는 잠정적인 주장’이며, 대립가설은 이를 반대하는 주장이다. 좀 더 쉽게 풀이하자면, 귀무가설은 누구나 사실이라고 여기고 있는 것이고, 대립가설은 귀무가설을 반박하기 위한 가설로써 연구자의 분석목적이 된다. 대립가설은 양측대립가설과 단측대립가설이 있다. 단측대립가설은 독립변수와 결과변수와의 관련성을 검정할 때 그 방향이 미리 어느 한쪽으로 결정되어 있는 경우이다. 양측대립가설은 독립변수와 종속변수 간에 관련성 혹은 차이의 존재 여부에만 관심을 가지며, 그 방향은 따지지 않는 가설이다.

EMI / EMC, 그리고 전자기학

Intro "4파이 입실론제로분의 ~ 뮤원뮤투 ... " 시험기간에 바짝 외운 문제풀이로 전자기학 시험문제를 풀었던 2학년. 1학년 수학을 자신만만하게 풀어제끼고, 벡터는 내적과 외적만 알면 되는 줄 알았지만 .. 벡터와 엮인 전자기학은 공식만 외우고 대입하여 풀게된다. 그러고 만난 EMI / EMC, 완전히 Isolation 된 회로에서의 이상동작. 절연 파괴 (絶緣破壞, electrical breakdown) 완전히 분리된 회로에서 전자가 넘나들며 흐른다. 가스레인지에서 배터리만으로 공기중에 Arc가 발생하며, 하늘에서 천둥번개가 내려치는 것 처럼 공기(절연물질)를 넘어서 전기가 흐르는 것 처럼, PCB 회로기판에서도 절연 파괴가 일어날 수 있다. 후에 전자기학, 무선통신, 안테나공학, 정보통신공학 ..

E - E Architecture 2024.03.27

로지스틱 회귀분석(Logistic Regression)

0. Intro 로지스틱 회귀분석은 분류 분석에 속하는 분석으로, 종속 변수가 범주형인 경우 새로운 자료에 대한 분류 목적으로 사용한다. 1.1 분류 분석의 유형들 1) 신경망 모형 (Artificial Neural Network) 2) 의사결정나무 (Decision Tree) 3) 앙상블 모형 (Ensenble) 4) 규칙기반 (Rule-Based) 5) 사례기반 (Case-Based) 6) 인접 이웃 (Nearest NEighbor) 7) 베이즈 분류 (Bayesian) 8) 서포트 벡터 머신 (SVM, Support Vector Machine) 9) 유전자 알고리즘 등이 있다. 1. 로지스틱 회귀모형 (Logistic Regression) 반응변수가 범주형인 경우에 적용하는 모형이다. 선형회귀분석이..

[CSAPP] Ch 3. 프로그램의 기계수준 표현 : (6) 제어문

3.6  제어문   3.6.1  조건코드   앞서 보았듯, CPU에는 정수 레지스터와 함께 가장 최근의 산술 또는 논리연산의 특성을 설명하는 레지스터들을 운영한다.CF: 캐리플래그(carry flag). 가장 최근의 연산에서 가장 중요한 비트로부터 올림이 발생한 것을 표시→비부호형 연산에서 오버플로우를 검출ZF: 영플래그 (Zero flag). 가장 최근 연산의 결과가 0인것을 표시SF: 부호 플래그 (Sign flag). 가장 최근 연산이 음수를 생성한것을 표시OF: 오버플로우 플래그 (Overflow flag). 가장 최근 연산이 2의 보수 오버플로우를 발생시킨 것을 표시→ 부호형 연산에서 오버플로우를 검출​​다른 레지스터들은 변경시키지 않으면서 조건 코드만 변경해 주는 두 개의 인스트럭션이 있다. ..

[CSAPP] Ch 3. 프로그램의 기계수준 표현 : (5) 산술연산과 논리연산

3.5  산술연산과 논리연산    3.5.1  유효주소 적재 (Load Effective Address)    leaq는 movq와 유사하나, leaq는 포인터를 생성하기 위해 사용된다는 차이가 있다. 즉, leaq 는 실제 데이터를 읽어오는게 아니라, 메모리의 주소자체 혹은 주소계산값을 가져온다.​  이 명령어는 가리키는 위치에서 읽기를 수행하는 대신 '유효주소'를 목적지에 복사한다. 그래서 목적 오퍼랜드에는 반드시 레지스터만 올 수 있다.    3.5.2  단항 및 이항 연산  여기서 단항연산은 c언어에서 i++ 과 같은 자기 혼자서도 연산이 가능한 연산, 이항연산은 a+=c 같은, 다른 항이 존재해야 하는 연산이다. 이항연산에서 두번째 오퍼랜드는 소스이면서 목적지로 사용된다.  소스에는 상수, 레지..

[CSAPP] Ch 3. 프로그램의 기계수준 표현 : (4) 정보 접근하기

3.4  정보 접근하기   x86-64 CPU 는 64bit 값을 저장할 수 있는 16개의 범용 레지스터를 보유하고 있다. 이 레지스터들은 정수 데이터와 포인터를 저장하는데 쓰인다. 64bit로 확장하면서 8개의 새로운 레지스터들이 추가되었으며, %r8 ~ %r15라 칭한다. 레지스터 관련 참고 :x86-64 CPU 레지스터(Register) 종류, 32bit / 64bit 비교 (tistory.com)   중첩된 사각형이 보여주듯, 인스트럭션들은 16개의 레지스터 하위 바이트들에 저장된 다양한 크기의 데이터에 대해 연산할 수 있다. 바이트수준 연산들은 가장 덜 중요한 바이트에 대해 연산을 할 수 있으며, 16비트 연산들은 가장 덜 중요한2바이트에 접근하고, 32비트 연산은 덜 중요한 4바이트에, 64비..

[CSAPP] Ch 3. 프로그램의 기계수준 표현 : (3) 데이터의 형식

3.3  데이터의 형식   인텔 프로세서들이 처음에는 16비트 구조를 사용했기 때문에, 워드라는 단어를 16비트 데이터 타입을 말할 떄 사용한다. 32비트는 '더블워드' , 64비트는 '쿼드워드' 라고 부른다.       • 포인터 : 64bit 머신에선 예상대로 8byte 쿼드워드로 저장됨.      • 부동소수점 : x86계열에서 특별히 10byte 부동소수점 형식 연산을 구현하였으나, 호환성과 성능을 고려하여 이용하지 않는 것이 좋다.   여기서 주목할 점은, 포인터 char * 은 쿼드워드로 표현된다는 것 → 모든 포인터가 다 q로 표현된다.  이 데이터의 형식이 각 인스트럭션의 접미사로 붙여쓰이게 된다.  예를 들면 movb (바이트이동), movw (워드이동), movl (더블워드 이동), m..

[CSAPP] Ch 3. 프로그램의 기계수준 표현 : (2) 프로그램의 인코딩

3.2  프로그램의 인코딩   GCC컴파일러를 통해 컴파일을 진행하면(커맨트 라인 옵션으로 -Og) 최적화 수준을 적용한다.  일반적으로 최적화 수준을 올리면 최종 프로그램은 더 빨리 동작하지만, 컴파일 시간이 증가하고 디버깅 도구를 실행하기 어려워질 위험이 있으며 만들어진 코드가 기존의 C코드에 비해 너무 많이 변경되어 본래 코드와 기계어 코드간의 관계를 이해하기 어렵게된다.   이러한 GCC 명령은 소스코드를 실행코드로 변환하기 위해 일련의 프로그램들을 호출한다. 앞서 1장에서 보았듯이, 전처리기, 컴파일러, 어셈블러, 링커까지 호출하게 된다.    3.2.1  기계수준 코드   컴퓨터 시스템은 보다 간단한 추상화 모델을 이용해서 세부구현내용은 감추며 추상화의 다른 형태를 사용하고 있다. 이들 중 "..

[CSAPP] Ch 3. 프로그램의 기계수준 표현 : (1) 역사적 관점

Ⅲ. 프로그램의 기계수준 표현   3.0  Intro   GNU GCC C 컴파일러는 어셈블리 코드의 형태로 출력을 만들어 프로그램의 각 인스트럭션을 만들어낸다.대개의 경우 고급 언어가 제공하는 추상화를 사용하는 것이 보다 더 생산적이고 안정적이다. 반면에 어셈블리 코드는컴퓨터 기계에 매우 의존적이기 때문에(회사마다 쓰는 어셈블리 셋이 약간씩 다르다) 컴퓨터 기계에 매우 의존적이라 할 수 있다. 특히 기계어 자체도 CPU가 채택하는 ISA(명령어셋)에 따라 다 다르기 때문에 어셈블리어의 명령어 역시 통일된 규격이 없다. 그렇다면 왜 어셈블리 코드를 알 면 좋을까?     1.  컴파일러의 최적화 성능을 알수있다.     2.  코드에 내재된 비효율성을 분석 가능하다.     3.  시스템의 취약성이 어떻..