Skip to page content

Courses

  • Natural Language Processing (10247)
  • Course summary:

    Abstract:

    Initially, the problems that arise when you want to process natural language will be reviewed. Next, language models will be introduced. Later, central algorithms such as IT-IDF, WORD2VEC, Bag of words, POS and more will be reviewed. At the same time, we will learn how to implement language processing algorithms using Python and dedicated libraries. Key applications in language processing will be reviewed: summarization, translation and keyword, sentiment analysis and more. The principles of LLM will be taught, including TRANSFORMERS, VAE and the use of language models and libraries such as GPT, HUGGINGFACE and more.
  • Final Project in Science1 (11402)
  • Course summary:

    Abstract:

    As part of the course, the student will be exposed to all the development stages of an application or software package including: application design and development, interface design, algorithm implementation, architecture selection and database integration, methodology implementation, critical thinking, end-to-end development and testing, documentation and presentation, teamwork and project management.
  • Final Project in Science2 (11403)
  • Course summary:

    Abstract:

    This is a continuation course in which the student will be exposed to all the development stages of an application or software package, including: application design and development, interface design, algorithm implementation, architecture selection and database integration, methodology implementation, critical thinking, end-to-end development and testing, documentation and presentation, teamwork and management projects.
  • NLP and Speech Analysis (65007)
  • Course summary:

    Abstract:

    How do computers understand our languages? How do search engines find exactly what we need in huge amounts of information? How do you turn speech into text? What are the analyzes that combine text and word processing? How do we do machine translation? How can texts be classified according to different requirements?

    The field of natural language processing (NLP) studies the problems related to the processing and manipulation of natural language, and the understanding of natural language in order to make computers "understand" things that are said or written in human languages. The field deals with the development of computational models and algorithms for analyzing texts in human language.

    In recent years, the field has gained momentum in industry and research. Automatic translation, response to search, analysis of texts in various media channels, language transfer to speech interfaces of mobile devices and more. In this course, algorithms will be presented for analyzing text starting from the level of single words to looking at a complex structure of sentences. Linguistic aspects of the field will also be presented. In the last third of the semester, the technologies and algorithms behind LLM such as GPT, including VAE, TRANSFORMERS will be studied.
  • Introduction to Deep Learning (65021)
  • Course summary:

    Abstract:

    During the course, the students will learn advanced methods of machine learning for feature extraction, methods for dimensionality reduction, etc.
  • Advanced Machine Learning Methods (65029)
  • Course summary:

    Abstract:

    The course presents algorithms and advanced methods in machine learning, most are Bayesian-based methods. The course starts with a presentation of a few basic algorithms used for graphical models. We will learn how to compute a-posterior probabilities of hidden variables, present a universal-type algorithm known as the ‘sum-product’ algorithm for the computation of marginal distributions in complex graphs. We will extend the notion graphs to Markov Random Fields, and show some of its uses for example in computer vision. We will then investigate the case where there are no clear parameters for the model. We will describe Gaussian and Dirichlet processes and show some examples such as the problem of clustering where there is no a-priori number of clusters. Bayesian methods sometimes force us to evaluate integrals using sampling methods, in particular where such integrals have no analytic closed form. We will discuss some basic Monte Carlo sampling methods. The course also deals with cases where based on the data given we are asked to choose a model. We will discuss some Bayesian methods or alternatively hyper-parameter optimization to find an appropriate model. In addition the course will present some dimension reduction methods, their advantages and limitations. Moreover we will discuss semi-supervised methods where only part of the data is annotated. The course ends with an introduction to the theory of genetic algorithms.