AI-driven design automation is the use of artificial intelligence (AI) to automate and improve different parts of the electronic design automation (EDA) process. It is particularly important in the design of integrated circuits (chips) and complex electronic systems, where it can potentially increase productivity, decrease costs, and speed up design cycles. AI Driven Design Automation uses several methods, including machine learning, expert systems, and reinforcement learning. These are used for many tasks, from planning a chip's architecture and logic synthesis to its physical design and final verification. == History == === 1980s–1990s: Expert systems and early experiments === The use of AI for design automation originated in the 1980s and 1990s, mainly with the creation of expert systems. These systems tried to capture the knowledge and practical rules used by human design experts, and used these rules, along with reasoning engines, to direct the design process. A notable early project was the ULYSSES system from Carnegie Mellon University. ULYSSES was a CAD tool integration environment that let expert designers turn their design methods into scripts that could be run automatically. It treated design tools as sources of knowledge that a scheduler could manage. Another example was the ADAM (Advanced Design AutoMation) system at the University of Southern California, which used an expert system called the Design Planning Engine. This engine figured out design strategies on the fly and handled different design jobs by organizing specialized knowledge into structured formats called frames. Other systems like DAA (Design Automation Assistant) used a rule-based approach for specific jobs, such as register transfer level (RTL) design for systems like the IBM 370. Researchers at Carnegie Mellon University also created TALIB, an expert system for mask layout that used over 1200 rules, and EMUCS/DAA for CPU architectural design which used about 70 rules. These projects showed that AI worked better for problems where relatively few rules were required to describe much larger amounts of data. At the same time, there was a surge of tools called silicon compilers like MacPitts, Arsenic, and Palladio. They used algorithms and search techniques to explore different design paradigms. This was another way to automate design, even if it was not always based on expert systems. Early tests with neural networks in VLSI design also happened during this time, although they were not as common as systems based on rules. === 2000s: Introduction of machine learning === In the 2000s, interest in AI for design automation increased. This was mostly because of better machine learning (ML) algorithms and more available data from design and manufacturing. For example, they were used to model and reduce the effects of small manufacturing differences in semiconductor devices. This became very important as the size of components on chips became smaller. The large amount of data created during chip design provided the foundation needed to train smarter ML models. This allowed for predicting outcomes and optimizing in areas that were hard to automate before. === 2016–2020: Reinforcement learning and large scale initiatives === A major turning point happened in the mid to late 2010s, sparked by successes in other areas of AI. The success of DeepMind's AlphaGo in mastering the game of Go inspired researchers. They began to apply reinforcement learning (RL) to difficult EDA problems. These problems often require searching through many options and making a series of decisions. In 2018, the U.S. DARPA started the Intelligent Design of Electronic Assets (IDEA) program. A main goal of IDEA was to create a fully automated layout generator that required no human intervention, able to produce a chip design ready for manufacturing from RTL specifications in 24 hours. Another big initiative was the OpenROAD project, a large effort under IDEA led by UC San Diego with industry and university partners, aimed to build an open source, independent toolchain. It used machine learning, parallelization and divide and conquer approaches. A much-publicized but controversial demonstration of RL's potential came from Google researchers between 2020 and 2021. They created a deep reinforcement learning method for planning the layout of a chip, known as floorplanning. They reported that this method created layouts that were as good as or better than those made by human experts, and it did so in less than six hours. This method used a type of network called a graph convolutional neural network. It showed that it could learn general patterns that could be applied to new problems, getting better as it saw more chip designs. The technology was later used to design Google's Tensor Processing Unit (TPU) accelerators. However, in the original paper, the improvement (if any) from AI was not demonstrated. There was no comparison with existing non-AI tools performing the same task, and since the data is proprietary, no ability for anyone else to perform this comparison. Various efforts to reproduce the AI algorithm, and compare its results with various commercial and academic tools, have yielded mixed results with no conclusive advantage to AI. === 2020s: Autonomous systems and agents === Entering the 2020s, the industry saw the commercial launch of autonomous AI driven EDA systems. For example, Synopsys launched DSO.ai (Design Space Optimization AI) in early 2020, calling it the first autonomous artificial intelligence application for chip design in the industry. This system uses reinforcement learning to search for the best ways to optimize a design within the huge number of possible solutions, trying to improve power, performance, and area (PPA). By 2023, DSO.ai had been used to produce over 100 commercial chips, showing mainstream adoption. Synopsys later grew its AI tools into a suite called Synopsys.ai. The goal was to use AI in the entire EDA workflow, including verification and testing. These advancements, which combine modern AI methods with cloud computing and large data resources, have led to talks about a new phase in EDA. Industry experts and participants sometimes call this 'EDA 4.0'. This new era is defined by the widespread use of AI and machine learning to deal with growing design complexity, automate more of the design process, and help engineers handle the huge amounts of data that EDA tools create. The purpose of EDA 4.0 is to optimize product performance, get products to market faster and make development and manufacturing smoother through intelligent automation. == Applications == Artificial intelligence (AI) is now used in many stages of the electronic design workflow. It aims to improve productivity, get better results, and handle the growing complexity of modern integrated circuits. AI helps designers from the very first ideas about architecture all the way to manufacturing and testing. === High level synthesis and architectural exploration === In the first phases of chip design, AI helps with High Level Synthesis (HLS) and exploring different system level design options (DSE). These processes are key for turning general ideas into detailed hardware plans. AI algorithms, often using supervised learning, are used to build simpler, substitute models. These models can quickly guess important design measurements like area, performance, and power for many different architectural options or HLS settings. For example, the Ithemal tool uses deep neural networks to estimate how fast basic code blocks will run, which helps in making processor architecture decisions. Similarly, PRIMAL uses machine learning estimate power use at the register transfer level (RTL), giving early information about how much power the chip will use. Reinforcement learning (RL) and Bayesian optimization are also used to guide the DSE process. They help search through the many parameters to find the best HLS settings or architectural details like cache sizes. LLMs are also being tested for creating architectural plans or initial C code for HLS, as seen with GPT4AIGChip. === Logic synthesis and optimization === Logic synthesis starts from a high level hardware description and generates an optimized list of electronic gates, known as a gate level netlist, that is ready for placement, routing, and then construction in a specific manufacturing process. AI methods help with different parts of this process, including logic optimization, technology mapping, and making improvements after mapping. Supervised learning, especially with Graph Neural Networks (GNNs), is good at handling data or problems that can be represented as graphs. Since circuit diagrams are instances of directed graphs, supervised learning can help create models that predict design properties like power or error rates in circuits. In logic synthesis and optimization reinforcement learning is used to perform logic optimization directly. In some cases ag
Model compression
Model compression is a machine learning technique for reducing the size of trained models. Large models can achieve high accuracy, but often at the cost of significant resource requirements. Compression techniques aim to compress models without significant performance reduction. Smaller models require less storage space, and consume less memory and compute during inference. Compressed models enable deployment on resource-constrained devices such as smartphones, embedded systems, edge computing devices, and consumer electronics computers. Efficient inference is also valuable for large corporations that serve large model inference over an API, allowing them to reduce computational costs and improve response times for users. Model compression is not to be confused with knowledge distillation, in which a smaller "student" model is trained to imitate the input-output behavior of a larger "teacher" model (as opposed to using the "teacher"'s trained parameters or the "teacher"'s training targets). == Techniques == Several techniques are employed for model compression. === Pruning === Pruning sparsifies a large model by setting some parameters to exactly zero. This effectively reduces the number of parameters. This allows the use of sparse matrix operations, which are faster than dense matrix operations. Pruning criteria can be based on magnitudes of parameters, the statistical pattern of neural activations, Hessian values, etc. === Quantization === Quantization reduces the numerical precision of weights and activations. For example, instead of storing weights as 32-bit floating-point numbers, they can be represented using 8-bit integers. Low-precision parameters take up less space, and takes less compute to perform arithmetic with. It is also possible to quantize some parameters more aggressively than others, so for example, a less important parameter can have 8-bit precision while another, more important parameter, can have 16-bit precision. Inference with such models requires mixed-precision arithmetic. Quantized models can also be used during training (rather than after training). PyTorch implements automatic mixed-precision (AMP), which performs autocasting, gradient scaling, and loss scaling. === Low-rank factorization === Weight matrices can be approximated by low-rank matrices. Let W {\displaystyle W} be a weight matrix of shape m × n {\displaystyle m\times n} . A low-rank approximation is W ≈ U V T {\displaystyle W\approx UV^{T}} , where U {\displaystyle U} and V {\displaystyle V} are matrices of shapes m × k , n × k {\displaystyle m\times k,n\times k} . When k {\displaystyle k} is small, this both reduces the number of parameters needed to represent W {\displaystyle W} approximately, and accelerates matrix multiplication by W {\displaystyle W} . Low-rank approximations can be found by singular value decomposition (SVD). The choice of rank for each weight matrix is a hyperparameter, and jointly optimized as a mixed discrete-continuous optimization problem. The rank of weight matrices may also be pruned after training, taking into account the effect of activation functions like ReLU on the implicit rank of the weight matrices. == Training == Model compression may be decoupled from training, that is, a model is first trained without regard for how it might be compressed, then it is compressed. However, it may also be combined with training. The "train big, then compress" method trains a large model for a small number of training steps (less than it would be if it were trained to convergence), then heavily compress the model. It is found that at the same compute budget, this method results in a better model than lightly compressed, small models. In Deep Compression, the compression has three steps. First loop (pruning): prune all weights lower than a threshold, then finetune the network, then prune again, etc. Second loop (quantization): cluster weights, then enforce weight sharing among all weights in each cluster, then finetune the network, then cluster again, etc. Third step: Use Huffman coding to losslessly compress the model. The SqueezeNet paper reported that Deep Compression achieved a compression ratio of 35 on AlexNet, and a ratio of ~10 on SqueezeNets.
Multisample anti-aliasing
Multisample anti-aliasing (MSAA) is a type of spatial anti-aliasing, a technique used in computer graphics to remove jaggies. It is an optimization of supersampling, where only the necessary parts are sampled more. Jaggies are only noticed in a small area, so the area is quickly found, and only that is anti-aliased. == Definition == The term generally refers to a special case of supersampling. Initial implementations of full-scene anti-aliasing (FSAA) worked conceptually by simply rendering a scene at a higher resolution, and then downsampling to a lower-resolution output. Most modern GPUs are capable of this form of anti-aliasing, but it greatly taxes resources such as texture, bandwidth, and fillrate. (If a program is highly TCL-bound or CPU-bound, supersampling can be used without much performance hit.) According to the OpenGL GL_ARB_multisample specification, "multisampling" refers to a specific optimization of supersampling. The specification dictates that the renderer evaluate the fragment program once per pixel, and only "truly" supersample the depth and stencil values. (This is not the same as supersampling but, by the OpenGL 1.5 specification, the definition had been updated to include fully supersampling implementations as well.) In graphics literature in general, "multisampling" refers to any special case of supersampling where some components of the final image are not fully supersampled. The lists below refer specifically to the ARB_multisample definition. == Description == In supersample anti-aliasing, multiple locations are sampled within every pixel, and each of those samples is fully rendered and combined with the others to produce the pixel that is ultimately displayed. This is computationally expensive, because the entire rendering process must be repeated for each sample location. It is also inefficient, as aliasing is typically only noticed in some parts of the image, such as the edges, whereas supersampling is performed for every single pixel. In multisample anti-aliasing, if any of the multi sample locations in a pixel is covered by the triangle being rendered, a shading computation must be performed for that triangle. However this calculation only needs to be performed once for the whole pixel regardless of how many sample positions are covered; the result of the shading calculation is simply applied to all of the relevant multi sample locations. In the case where only one triangle covers every multi sample location within the pixel, only one shading computation is performed, and these pixels are little more expensive than (and the result is no different from) the non-anti-aliased image. This is true of the middle of triangles, where aliasing is not an issue. (Edge detection can reduce this further by explicitly limiting the MSAA calculation to pixels whose samples involve multiple triangles, or triangles at multiple depths.) In the extreme case where each of the multi sample locations is covered by a different triangle, a different shading computation will be performed for each location and the results then combined to give the final pixel, and the result and computational expense are the same as in the equivalent supersampled image. The shading calculation is not the only operation that must be performed on a given pixel; multisampling implementations may variously sample other operations such as visibility at different sampling levels. == Advantages == The pixel shader usually only needs to be evaluated once per pixel for every triangle covering at least one sample point. The edges of polygons (the most obvious source of aliasing in 3D graphics) are anti-aliased. Since multiple subpixels per pixel are sampled, polygonal details smaller than one pixel that might have been missed without MSAA can be captured and made a part of the final rendered image if enough samples are taken. == Disadvantages == === Alpha testing === Alpha testing is a technique common to older video games used to render translucent objects by rejecting pixels from being written to the framebuffer. If the alpha value of a translucent fragment (pixel) is below a specified threshold, it will be discarded. Because this is performed on a pixel by pixel basis, the image does not receive the benefits of multi-sampling (all of the multisamples in a pixel are discarded based on the alpha test) for these pixels. The resulting image may contain aliasing along the edges of transparent objects or edges within textures, although the image quality will be no worse than it would be without any anti-aliasing. Translucent objects that are modelled using alpha-test textures will also be aliased due to alpha testing. This effect can be minimized by rendering objects with transparent textures multiple times, although this would result in a high performance reduction for scenes containing many transparent objects. === Aliasing === Because multi-sampling calculates interior polygon fragments only once per pixel, aliasing and other artifacts will still be visible inside rendered polygons where fragment shader output contains high frequency components. === Performance === While less performance-intensive than SSAA (supersampling), it is possible in certain scenarios (scenes heavy in complex fragments) for MSAA to be multiple times more intensive for a given frame than post processing anti-aliasing techniques such as FXAA, SMAA and MLAA. Early techniques in this category tend towards a lower performance impact, but suffer from accuracy problems. More recent post-processing based anti-aliasing techniques such as temporal anti-aliasing (TAA), which reduces aliasing by combining data from previously rendered frames, have seen the reversal of this trend, as post-processing AA becomes both more versatile and more expensive than MSAA, which cannot antialias an entire frame alone. == Sampling methods == === Point sampling === In a point-sampled mask, the coverage bit for each multisample is only set if the multisample is located inside the rendered primitive. Samples are never taken from outside a rendered primitive, so images produced using point-sampling will be geometrically correct, but filtering quality may be low because the proportion of bits set in the pixel's coverage mask may not be equal to the proportion of the pixel that is actually covered by the fragment in question. === Area sampling === Filtering quality can be improved by using area sampled masks. In this method, the number of bits set in a coverage mask for a pixel should be proportionate to the actual area coverage of the fragment. This will result in some coverage bits being set for multisamples that are not actually located within the rendered primitive, and can cause aliasing and other artifacts. == Sample patterns == === Regular grid === A regular grid sample pattern, where multisample locations form an evenly spaced grid throughout the pixel, is easy to implement and simplifies attribute evaluation (i.e. setting subpixel masks, sampling color and depth). This method is computationally expensive due to the large number of samples. Edge optimization is poor for screen-aligned edges, but image quality is good when the number of multisamples is large. === Sparse regular grid === A sparse regular grid sample pattern is a subset of samples that are chosen from the regular grid sample pattern. As with the regular grid, attribute evaluation is simplified due to regular spacing. The method is less computationally expensive due to having a fewer samples. Edge optimization is good for screen aligned edges, and image quality is good for a moderate number of multisamples. === Stochastic sample patterns === A stochastic sample pattern is a random distribution of multisamples throughout the pixel. The irregular spacing of samples makes attribute evaluation complicated. The method is cost efficient due to low sample count (compared to regular grid patterns). Edge optimization with this method, although sub-optimal for screen aligned edges. Image quality is excellent for a moderate number of samples. == Quality == Compared to supersampling, multisample anti-aliasing can provide similar quality at higher performance, or better quality for the same performance. Further improved results can be achieved by using rotated grid subpixel masks. The additional bandwidth required by multi-sampling is reasonably low if Z and colour compression are available. Most modern GPUs support 2×, 4×, and 8× MSAA samples. Higher values result in better quality, but are slower.
Shearlet
In applied mathematical analysis, shearlets are a multiscale framework which allows efficient encoding of anisotropic features in multivariate problem classes. Originally, shearlets were introduced in 2006 for the analysis and sparse approximation of functions f ∈ L 2 ( R 2 ) {\displaystyle f\in L^{2}(\mathbb {R} ^{2})} . They are a natural extension of wavelets, to accommodate the fact that multivariate functions are typically governed by anisotropic features such as edges in images, since wavelets, as isotropic objects, are not capable of capturing such phenomena. Shearlets are constructed by parabolic scaling, shearing, and translation applied to a few generating functions. At fine scales, they are essentially supported within skinny and directional ridges following the parabolic scaling law, which reads length² ≈ width. Similar to wavelets, shearlets arise from the affine group and allow a unified treatment of the continuum and digital situation leading to faithful implementations. Although they do not constitute an orthonormal basis for L 2 ( R 2 ) {\displaystyle L^{2}(\mathbb {R} ^{2})} , they still form a frame allowing stable expansions of arbitrary functions f ∈ L 2 ( R 2 ) {\displaystyle f\in L^{2}(\mathbb {R} ^{2})} . One of the most important properties of shearlets is their ability to provide optimally sparse approximations (in the sense of optimality in ) for cartoon-like functions f {\displaystyle f} . In imaging sciences, cartoon-like functions serve as a model for anisotropic features and are compactly supported in [ 0 , 1 ] 2 {\displaystyle [0,1]^{2}} while being C 2 {\displaystyle C^{2}} apart from a closed piecewise C 2 {\displaystyle C^{2}} singularity curve with bounded curvature. The decay rate of the L 2 {\displaystyle L^{2}} -error of the N {\displaystyle N} -term shearlet approximation obtained by taking the N {\displaystyle N} largest coefficients from the shearlet expansion is in fact optimal up to a log-factor: ‖ f − f N ‖ L 2 2 ≤ C N − 2 ( log N ) 3 , N → ∞ , {\displaystyle \|f-f_{N}\|_{L^{2}}^{2}\leq CN^{-2}(\log N)^{3},\quad N\to \infty ,} where the constant C {\displaystyle C} depends only on the maximum curvature of the singularity curve and the maximum magnitudes of f {\displaystyle f} , f ′ {\displaystyle f'} and f ″ . {\displaystyle f''.} This approximation rate significantly improves the best N {\displaystyle N} -term approximation rate of wavelets providing only O ( N − 1 ) {\displaystyle O(N^{-1})} for such class of functions. Shearlets are to date the only directional representation system that provides sparse approximation of anisotropic features while providing a unified treatment of the continuum and digital realm that allows faithful implementation. Extensions of shearlet systems to L 2 ( R d ) , d ≥ 2 {\displaystyle L^{2}(\mathbb {R} ^{d}),d\geq 2} are also available. A comprehensive presentation of the theory and applications of shearlets can be found in. == Definition == === Continuous shearlet systems === The construction of continuous shearlet systems is based on parabolic scaling matrices A a = [ a 0 0 a 1 / 2 ] , a > 0 {\displaystyle A_{a}={\begin{bmatrix}a&0\\0&a^{1/2}\end{bmatrix}},\quad a>0} as a means to change the resolution, on shear matrices S s = [ 1 s 0 1 ] , s ∈ R {\displaystyle S_{s}={\begin{bmatrix}1&s\\0&1\end{bmatrix}},\quad s\in \mathbb {R} } as a means to change the orientation, and finally on translations to change the positioning. In comparison to curvelets, shearlets use shearings instead of rotations, the advantage being that the shear operator S s {\displaystyle S_{s}} leaves the integer lattice invariant in case s ∈ Z {\displaystyle s\in \mathbb {Z} } , i.e., S s Z 2 ⊆ Z 2 . {\displaystyle S_{s}\mathbb {Z} ^{2}\subseteq \mathbb {Z} ^{2}.} This indeed allows a unified treatment of the continuum and digital realm, thereby guaranteeing a faithful digital implementation. For ψ ∈ L 2 ( R 2 ) {\displaystyle \psi \in L^{2}(\mathbb {R} ^{2})} the continuous shearlet system generated by ψ {\displaystyle \psi } is then defined as SH c o n t ( ψ ) = { ψ a , s , t = a 3 / 4 ψ ( S s A a ( ⋅ − t ) ) ∣ a > 0 , s ∈ R , t ∈ R 2 } , {\displaystyle \operatorname {SH} _{\mathrm {cont} }(\psi )=\{\psi _{a,s,t}=a^{3/4}\psi (S_{s}A_{a}(\cdot -t))\mid a>0,s\in \mathbb {R} ,t\in \mathbb {R} ^{2}\},} and the corresponding continuous shearlet transform is given by the map f ↦ S H ψ f ( a , s , t ) = ⟨ f , ψ a , s , t ⟩ , f ∈ L 2 ( R 2 ) , ( a , s , t ) ∈ R > 0 × R × R 2 . {\displaystyle f\mapsto {\mathcal {SH}}_{\psi }f(a,s,t)=\langle f,\psi _{a,s,t}\rangle ,\quad f\in L^{2}(\mathbb {R} ^{2}),\quad (a,s,t)\in \mathbb {R} _{>0}\times \mathbb {R} \times \mathbb {R} ^{2}.} === Discrete shearlet systems === A discrete version of shearlet systems can be directly obtained from SH c o n t ( ψ ) {\displaystyle \operatorname {SH} _{\mathrm {cont} }(\psi )} by discretizing the parameter set R > 0 × R × R 2 . {\displaystyle \mathbb {R} _{>0}\times \mathbb {R} \times \mathbb {R} ^{2}.} There are numerous approaches for this but the most popular one is given by { ( 2 j , k , A 2 j − 1 S k − 1 m ) ∣ j ∈ Z , k ∈ Z , m ∈ Z 2 } ⊆ R > 0 × R × R 2 . {\displaystyle \{(2^{j},k,A_{2^{j}}^{-1}S_{k}^{-1}m)\mid j\in \mathbb {Z} ,k\in \mathbb {Z} ,m\in \mathbb {Z} ^{2}\}\subseteq \mathbb {R} _{>0}\times \mathbb {R} \times \mathbb {R} ^{2}.} From this, the discrete shearlet system associated with the shearlet generator ψ {\displaystyle \psi } is defined by SH ( ψ ) = { ψ j , k , m = 2 3 j / 4 ψ ( S k A 2 j ⋅ − m ) ∣ j ∈ Z , k ∈ Z , m ∈ Z 2 } , {\displaystyle \operatorname {SH} (\psi )=\{\psi _{j,k,m}=2^{3j/4}\psi (S_{k}A_{2^{j}}\cdot {}-m)\mid j\in \mathbb {Z} ,k\in \mathbb {Z} ,m\in \mathbb {Z} ^{2}\},} and the associated discrete shearlet transform is defined by f ↦ S H ψ f ( j , k , m ) = ⟨ f , ψ j , k , m ⟩ , f ∈ L 2 ( R 2 ) , ( j , k , m ) ∈ Z × Z × Z 2 . {\displaystyle f\mapsto {\mathcal {SH}}_{\psi }f(j,k,m)=\langle f,\psi _{j,k,m}\rangle ,\quad f\in L^{2}(\mathbb {R} ^{2}),\quad (j,k,m)\in \mathbb {Z} \times \mathbb {Z} \times \mathbb {Z} ^{2}.} == Examples == Let ψ 1 ∈ L 2 ( R ) {\displaystyle \psi _{1}\in L^{2}(\mathbb {R} )} be a function satisfying the discrete Calderón condition, i.e., ∑ j ∈ Z | ψ ^ 1 ( 2 − j ξ ) | 2 = 1 , for a.e. ξ ∈ R , {\displaystyle \sum _{j\in \mathbb {Z} }|{\hat {\psi }}_{1}(2^{-j}\xi )|^{2}=1,{\text{for a.e. }}\xi \in \mathbb {R} ,} with ψ ^ 1 ∈ C ∞ ( R ) {\displaystyle {\hat {\psi }}_{1}\in C^{\infty }(\mathbb {R} )} and supp ψ ^ 1 ⊆ [ − 1 2 , − 1 16 ] ∪ [ 1 16 , 1 2 ] , {\displaystyle \operatorname {supp} {\hat {\psi }}_{1}\subseteq [-{\tfrac {1}{2}},-{\tfrac {1}{16}}]\cup [{\tfrac {1}{16}},{\tfrac {1}{2}}],} where ψ ^ 1 {\displaystyle {\hat {\psi }}_{1}} denotes the Fourier transform of ψ 1 . {\displaystyle \psi _{1}.} For instance, one can choose ψ 1 {\displaystyle \psi _{1}} to be a Meyer wavelet. Furthermore, let ψ 2 ∈ L 2 ( R ) {\displaystyle \psi _{2}\in L^{2}(\mathbb {R} )} be such that ψ ^ 2 ∈ C ∞ ( R ) , {\displaystyle {\hat {\psi }}_{2}\in C^{\infty }(\mathbb {R} ),} supp ψ ^ 2 ⊆ [ − 1 , 1 ] {\displaystyle \operatorname {supp} {\hat {\psi }}_{2}\subseteq [-1,1]} and ∑ k = − 1 1 | ψ ^ 2 ( ξ + k ) | 2 = 1 , for a.e. ξ ∈ [ − 1 , 1 ] . {\displaystyle \sum _{k=-1}^{1}|{\hat {\psi }}_{2}(\xi +k)|^{2}=1,{\text{for a.e. }}\xi \in \left[-1,1\right].} One typically chooses ψ ^ 2 {\displaystyle {\hat {\psi }}_{2}} to be a smooth bump function. Then ψ ∈ L 2 ( R 2 ) {\displaystyle \psi \in L^{2}(\mathbb {R} ^{2})} given by ψ ^ ( ξ ) = ψ ^ 1 ( ξ 1 ) ψ ^ 2 ( ξ 2 ξ 1 ) , ξ = ( ξ 1 , ξ 2 ) ∈ R 2 , {\displaystyle {\hat {\psi }}(\xi )={\hat {\psi }}_{1}(\xi _{1}){\hat {\psi }}_{2}\left({\tfrac {\xi _{2}}{\xi _{1}}}\right),\quad \xi =(\xi _{1},\xi _{2})\in \mathbb {R} ^{2},} is called a classical shearlet. It can be shown that the corresponding discrete shearlet system SH ( ψ ) {\displaystyle \operatorname {SH} (\psi )} constitutes a Parseval frame for L 2 ( R 2 ) {\displaystyle L^{2}(\mathbb {R} ^{2})} consisting of bandlimited functions. Another example are compactly supported shearlet systems, where a compactly supported function ψ ∈ L 2 ( R 2 ) {\displaystyle \psi \in L^{2}(\mathbb {R} ^{2})} can be chosen so that SH ( ψ ) {\displaystyle \operatorname {SH} (\psi )} forms a frame for L 2 ( R 2 ) {\displaystyle L^{2}(\mathbb {R} ^{2})} . In this case, all shearlet elements in SH ( ψ ) {\displaystyle \operatorname {SH} (\psi )} are compactly supported providing superior spatial localization compared to the classical shearlets, which are bandlimited. Although a compactly supported shearlet system does not generally form a Parseval frame, any function f ∈ L 2 ( R 2 ) {\displaystyle f\in L^{2}(\mathbb {R} ^{2})} can be represented by the shearlet expansion due to its frame property. == Cone-adapted shearlets == One drawback of shearlets defined as above is the directional bias of shearlet elements associated with large shearing parameters. This effect is already r
Non-native speech database
A non-native speech database is a speech database of non-native pronunciations of English. Such databases are used in the development of: multilingual automatic speech recognition systems, text to speech systems, pronunciation trainers, and second language learning systems. == List == The actual table with information about the different databases is shown in Table 2. === Legend === In the table of non-native databases some abbreviations for language names are used. They are listed in Table 1. Table 2 gives the following information about each corpus: The name of the corpus, the institution where the corpus can be obtained, or at least further information should be available, the language which was actually spoken by the speakers, the number of speakers, the native language of the speakers, the total amount of non-native utterances the corpus contains, the duration in hours of the non-native part, the date of the first public reference to this corpus, some free text highlighting special aspects of this database and a reference to another publication. The reference in the last field is in most cases to the paper which is especially devoted to describe this corpus by the original collectors. In some cases it was not possible to identify such a paper. In these cases a paper is referenced which is using this corpus is. Some entries are left blank and others are marked with unknown. The difference here is that blank entries refer to attributes where the value is just not known. Unknown entries, however, indicate that no information about this attribute is available in the database itself. As an example, in the Jupiter weather database no information about the origin of the speakers is given. Therefore this data would be less useful for verifying accent detection or similar issues. Where possible, the name is a standard name of the corpus, for some of the smaller corpora, however, there was no established name and hence an identifier had to be created. In such cases, a combination of the institution and the collector of the database is used. In the case where the databases contain native and non-native speech, only attributes of the non-native part of the corpus are listed. Most of the corpora are collections of read speech. If the corpus instead consists either partly or completely of spontaneous utterances, this is mentioned in the Specials column.
Instance-based learning
In machine learning, instance-based learning (sometimes called memory-based learning) is a family of learning algorithms that, instead of performing explicit generalization, compare new problem instances with instances seen in training, which have been stored in memory. Because computation is postponed until a new instance is observed, these algorithms are sometimes referred to as "lazy." It is called instance-based because it constructs hypotheses directly from the training instances themselves. This means that the hypothesis complexity can grow with the data: in the worst case, a hypothesis is a list of n training items and the computational complexity of classifying a single new instance is O(n). One advantage that instance-based learning has over other methods of machine learning is its ability to adapt its model to previously unseen data. Instance-based learners may simply store a new instance or throw an old instance away. Examples of instance-based learning algorithms are the k-nearest neighbors algorithm, kernel machines and RBF networks. These store (a subset of) their training set; when predicting a value/class for a new instance, they compute distances or similarities between this instance and the training instances to make a decision. To battle the memory complexity of storing all training instances, as well as the risk of overfitting to noise in the training set, instance reduction algorithms have been proposed.
Softwarp
Softwarp is a software technique to warp an image so that it can be projected on a curved screen. This can be done in real time by inserting the softwarp as a last step in the rendering cycle. The problem is to know how the image should be warped to look correct on the curved screen. There are several techniques to auto calibrate the warping by projecting a pattern and using cameras and/or sensors. The information from the sensors is sent to the software so that it can analyze the data and calculate the curvature of the projection screen. == Usage == The softwarp can be used to project virtual views on curved walls and domes. These are usually used in vehicle simulators, for instance boat-, car- and airplane simulators. To make it possible to cover a dome with a 360 degree view you need to use several projectors. A problem with using several projectors on the same screen is that the edges between the projected images get about twice the amount of light. This is solved by using a technique called edge blending. With this technique a “filter” is inserted on the edge that fades the image from 100% light strength (luminance) to 0% (the lowest luminance depends on the contrast ratio of the projector). == History == The first warping technologies used a hardware image processing unit to warp the image. This processing unit was inserted between the graphics card and the projector. The problem with this technique is that it depends on the type of signal and the quality of the signal from the graphics card to warp it correctly. The process unit also needs several lines of image information before it can start sending out the warped image. This adds a latency to the display system that could be a problem in simulators that need fast response time, for instance fighter jet simulators. Softwarping eliminates the latency.