[ 인공지능 ] Loss Surface란?
·
공부 정리/면접 준비
Loss surface는 머신 러닝 모델의 손실 함수가 그래프로 표현된 것입니다. 손실 함수는 모델의 예측 결과와 실제 값 사이의 차이를 측정하고, 모델을 최적화하는 데 사용됩니다. 따라서 손실 함수의 그래프는 모델의 성능과 최적화 과정에 매우 중요한 역할을 합니다. Loss surface의 특징: 고차원: 대부분의 머신 러닝 모델은 매우 높은 차원의 입력 공간에서 작동합니다. 따라서 loss surface는 매우 높은 차원의 공간에 있는 함수로 볼 수 있습니다. 비선형성: 많은 머신 러닝 모델은 비선형 함수를 사용합니다. 이러한 모델의 손실 함수는 비선형적이며, loss surface는 매우 복잡한 형태를 가질 수 있습니다. 지역 최소값: 일부 모델의 손실 함수는 지역 최소값이 존재할 수 있습니다. 이..
[ 데이터 베이스 ] RDBMS와 NOSQL의 특징에 대해서 설명해 보세요.
·
공부 정리/면접 준비
RDB의 경우, 정해진 스키마를 갖고 있습니다. 데이터는 관계를 통해서 여러개의 테이블에 분산됩니다. 테이블간의 관계에서 foreigen key를 사용해서 join이 가능하다는 점이 특징입니다. NOSQL의 경우에는 다양한 프로그램들이 있어서 각기 특징이 다릅니다. 보편적인 특징으로는, RDB와 반대로 Schema가 존재하지 않고, 테이블 간의 관계를 정의하지 않으며, 분산 저장을 통한 Scale-out에 유리한 구조를 가지고 있습니다. RDB는 데이터 구조가 명확하고 변경 될 여지가 없고, 데이터 무결성에 대한 보장이 필요한 시스템에서 사용하는 것이 좋습니다. 또한, 관계를 맺고 있는 데이터가 자주 Update가 일어나는 경우에 적합합니다. NOSQL은 데이터 구조를 잘 알 수 없고, 데이터의 구조의 ..
Ch6. 정렬 - 위에서 아래로
·
코딩 테스트/이취코테
[ 위에서 아래로 ] -------------------- [ 접근 방법 ] 기본 중의 기본 문제. 리스트로써 받고, sort 한다. -------------------- [ 작성 코드 ] n = int(input()) nums = [] for _ in range(n): nums.append(int(input())) nums.sort(reverse=True) for i in nums: print(i,end=" ") -------------------- [ 정답 코드와 비교 ] 정답 코드에서는 sorted 함수를 사용하여 새로운 변수에 리스트를 저장하였다. 그것 말고는 거의 동일하게 동작하였다.
[ 인공지능 ] 머신러닝과 딥러닝의 차이점은?
·
공부 정리/면접 준비
인공지능 : 사람의 지적 능력을 컴퓨터를 통해 구현하는 기술 머신러닝 : 사람이 정한 모델과 특징 추출 방법을 이용하여 데이터를 기반으로 추론할 수 있게 하는 기술 딥러닝 : 인공신경망 방법을 이용해 만든 머신러닝 기술로, 빅테이터 학습에 적합한 기술 머신러닝과 딥러닝의 차이 는 사람의 개입 여부. 머신러닝과 딥러닝 모두 데이터를 분류하는 데 사용하는 기술이지만 두 기술의 가장 큰 차이점은 바로 사람의 개입 여부입니다. input과 특징점 추출에서 사람이 개입한다. 머신러닝은 신경망이 없음! ( 머신러닝은 주어진 데이터를 인간이 먼저 처리합니다. 사람이 먼저 컴퓨터에 특정 패턴을 추출하는 방법 을 지시하고, 그 이후 컴퓨터가 스스로 데이터의 특징을 분석하고 축적합니다. 이렇게 축적된 데이터를 바탕으로 문..
Ch5. DFS/BFS - 미로 탈출
·
코딩 테스트/이취코테
[ 미로 탈출 ] [ 접근 방법 ] 특정 칸 까지 최소 거리로 움직이는 방법은 BFS로 풀 수 있다. 가끔 최소 거리로 인해 다익스트라 알고리즘이랑 헷갈렸는데, 이 처럼 가중치가 1인 최소거리는 대부분 BFS로 풀면 코테에서 풀리는 경우가 많았다. 이에 따라 맵을 리스트로 받은 후 도착 지역까지 BFS를 진행하며 count 를 1씩 늘리면 될 것 같다. [ 작성 코드 ] from collections import deque n, m = map(int,input().split()) maze_map = [] for _ in range(n): maze_map.append(list(map(int,input()))) nx = [-1, 0, 1, 0] ny = [ 0, -1, 0, 1] maze_map[0][0] ..
Ch5. DFS/BFS - 음료수 얼려 먹기
·
코딩 테스트/이취코테
[ 음료수 얼려 먹기 ] -------------------- [ 접근 방법 ] n, m 을 입력 받아서 리스트를 선언하여 맵을 저장합니다. 그리고 하나하나 확인하며 0일 경우 DFS를 통해 1로 채우고 카운트하여 총 아이스크림의 갯수를 파악해 출력합니다. ------------------ [ 작성 코드 ] n , m = map(int, input().split() ) map = [] for _ in range(n): map.append([int(i) for i in input()]) # map.append(list(map(int,input()))) nx = [-1, 0, 1, 0] ny = [ 0, -1, 0, 1] def dfs(i,j): if i = n or j >..
[ 네트워크 ] TCP와 UDP의 특징을 설명해 보세요.
·
공부 정리/면접 준비
TCP/UDP 모두 OSI 7 Layer 중 Transport layer에서 사용하는 기술입니다. TCP는 3-way handshake 과정을 통해 연결을 설정하고 4-way handshaker과정을 통해 해제합니다. TCP는 흐름 제어를 위해 보편적으로 Sliding Window 방식을 사용합니다. 한 번에 처리할 수 있는 데이터를 정해 놓고, 보내고, 응답받고, 윈도우를 밀어내는 방식을 반복해서 전송합니다. 이 때, Receiver는 Sender로 ACK을 보냅니다. ACK을 보낼 때, Seq번호를 순차적으로 같이 전송하기 때문에 Sender는 같은 Seq번호의 ACK이 여러 번 도착할 경우 문제가 발생한 것을 알 수 있습니다. TCP는 세그먼트가 손실되었거나 훼손된 경우 를 통해 Go-Back-AR..
[ 운영체제 ] Process와 Thread의 특징에 대해 설명해 보세요.
·
공부 정리/면접 준비
먼저, 프로세스는 운영체제로부터 자원을 할당받은 작업의 단위이며 쓰레드는 프로세스가 할당 받은 자원을 이용하는 실행흐름의 단위입니다. 앞서 이야기했 듯 프로세스와 스레드는 개념의 범위부터 다릅니다. 스레드는 프로세스 안에 포함되어 있기 때문입니다. 운영체제가 프로세스에게 Code/Data/Stack/Heap 메모리 영역을 할당해 주고 최소 작업 단위로 삼는 반면, 스레드는 프로세스 내에서 Stack 메모리 영역을 제외한 다른 메모리 영역을 같은 프로세스 내 다른 스레드와 공유합니다. 프로세스는 다른 프로세스와 정보를 공유하려면 IPC를 사용하는 등의 번거로운 과정을 거쳐야 하지만, 스레드는 기본 구조 자체가 메모리를 공유하는 구조이기 때문에 다른 스레드와 정보 공유가 쉽습니다. 때문에 멀티태스킹보다 멀티..
포카칩인심
포카의 IT 블로그